id = 1488 title = "Memory not accessible from GDB when using mps3-an547" state = "closed" created_at = "2023-02-13T12:30:05.839Z" closed_at = "2023-04-05T16:54:43.626Z" labels = ["GDB", "target: arm"] url = "https://gitlab.com/qemu-project/qemu/-/issues/1488" host-os = "Ubuntu 20.04.5 LTS" host-arch = "x86" qemu-version = "7.2.0" guest-os = "none (bare-metal)" guest-arch = "cortex-m55, Armv8.1-M" description = """Memory (including variables) is not accessible when connecting to the emulated machine via GDB""" reproduce = """1. Create minimal program `main.c`: ```c int main(void) { int myvar = 42; for(;;) } ``` 2. Compile ```bash 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 ``` (ARM startup files and include directories omitted for brevity) 3. Link ```bash 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 ``` (ARM startup files omitted for brevity) 4. Run binary in QEMU: ```bash qemu-system-arm --machine mps3-an547 -serial mon:stdio -kernel test.elf -gdb tcp::1234 -S ``` 5. Attach using GDB `arm-none-eabi-gdb build/test.elf` and set break point to infinite loop ```gdb target remote :1234 break main.c:18 continue print myvar ``` Expected Output: 42 Actual Output: `Cannot access memory at address 0x11fffe4`""" additional = "n/a"