Memory not accessible from GDB when using mps3-an547
Host environment
- Operating system: Ubuntu 20.04.5 LTS
- OS/kernel version: Linux 4.4.0-19041-Microsoft
- Architecture: x86
- QEMU flavor: qemu-system-arm
- QEMU version: 7.2.0
- QEMU command line:
qemu-system-arm --machine mps3-an547 -serial mon:stdio -kernel test.elf -gdb tcp::1234 -S
Emulated/Virtualized environment
- Operating system: none (bare-metal)
- OS/kernel version: -
- Architecture: cortex-m55, Armv8.1-M
Description of problem
Memory (including variables) is not accessible when connecting to the emulated machine via GDB
Steps to reproduce
- Create minimal program
main.c:int main(void) { int myvar = 42; for(;;) } - Compile
(ARM startup files and include directories omitted for brevity)
arm-none-eabi-gcc -c -o build/main.o -c -mcpu=cortex-m55 -mfloat-abi=hard -mthumb -funsigned-char -mlittle-endian -O0 -g -std=c11 main.c - Link
(ARM startup files omitted for brevity)
arm-none-eabi-g++ -o build/test.elf build/main.o -mcpu=cortex-m55 -mfloat-abi=hard -mthumb -funsigned-char -mlittle-endian --entry=Reset_Handler -static -T./platform.ld -O0 -g - Run binary in QEMU:
qemu-system-arm --machine mps3-an547 -serial mon:stdio -kernel test.elf -gdb tcp::1234 -S - Attach using GDB
arm-none-eabi-gdb build/test.elfand set break point to infinite looptarget remote :1234 break main.c:18 continue print myvar
Expected Output: 42
Actual Output: Cannot access memory at address 0x11fffe4
Additional Information
Running info mem in GDB results in:
Using memory regions provided by the target.
There are no memory regions defined.