Source: qemu-system-arm Followup-For: Bug #1079835 X-Debbugs-Cc: tj.iam...@proton.me
With the failed sbuild environment still available one can debug the FAIL or TIMEOUT test binaries from outside: $ base=/srv/NAS/Sunny/SourceCode/builds/tmp.sbuild.voDevnvR A FAIL test: $ sudo qemu-system-arm -m 1G -chardev stdio,mux=on,id=stdio0 -semihosting-config enable=on,chardev=stdio0,arg=program-name -monitor none -serial none -machine none,accel=tcg -cpu cortex-a7 -device loader,file=$base/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi/test/printff_scanff_thumb_v7_nofp,cpu-num=0 -nographic hello world 1 checking floating point checking pos args ARM fault: undef R0: 0x00000002 R1: 0x00006fc7 R2: 0x201ffeb4 R3: 0x20200000 R4: 0x00000000 R5: 0x20000004 R6: 0x201ffecc PC: 0x00000342 A TIMEOUT test (process hangs indefinitely): $ sudo qemu-system-arm -m 1G -chardev stdio,mux=on,id=stdio0 -semihosting-config enable=on,chardev=stdio0,arg=program-name -monitor none -serial none -machine none,accel=tcg -cpu cortex-a7 -device loader,file=$base/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi/newlib/libm/test/math_test_thumb_v7_a_nofp,cpu-num=0 -nographic Debugging via gdb: Terminal A: $ sudo qemu-system-arm -gdb tcp::9999 -S -m 1G -chardev stdio,mux=on,id=stdio0 -semihosting-config enable=on,chardev=stdio0,arg=program-name -monitor none -serial none -machine none,accel=tcg -cpu cortex-a7 -device loader,file=$base/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi/test/printff_scanff_thumb_v7_nofp,cpu-num=0 -nographic Terminal B: $ sudo gdb-multiarch -ex "directory /srv/NAS/Sunny/SourceCode/builds/tmp.sbuild.voDevnvR/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi" -ex "file /srv/NAS/Sunny/SourceCode/builds/tmp.sbuild.voDevnvR/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi/test/printff_scanff_thumb_v7_nofp" -ex "set sysroot $base" -ex "target remote localhost:9999" -ex "break main" -ex "break ../../../test/printf_scanf.c:254" GNU gdb (Debian 13.1-3) 13.1 ... Source directories searched: /srv/NAS/Sunny/SourceCode/builds/tmp.sbuild.voDevnvR/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi:$cdir:$cwd Reading symbols from /srv/NAS/Sunny/SourceCode/builds/tmp.sbuild.voDevnvR/build/picolibc-ZiYfA8/picolibc-1.8.6/debian/build/arm-none-eabi/test/printff_scanff_thumb_v7_nofp... Remote debugging using localhost:9999 _start () at ../../../picocrt/machine/arm/crt0.c:117 117 __asm__("mov sp, %0" : : "r" (__stack)); Breakpoint 1 at 0x140: file ../../../test/printf_scanf.c, line 185. Breakpoint 2 at 0x1ec: ../../../test/printf_scanf.c:254. (2 locations) (gdb) c Continuing. Breakpoint 1, main () at ../../../test/printf_scanf.c:185 185 { (gdb) c Continuing. Breakpoint 2.1, main () at ../../../test/printf_scanf.c:254 254 for (x = 0; x <= 6; x++) { (gdb) s 256 char tbuf[10] = "xxxxxxxxx"; (gdb) s arm_data_abort_vector () at ../../../picocrt/machine/arm/crt0.c:284 284 VECTOR_COMMON; (gdb) s 285 __asm__("mov r1, #" REASON(REASON_UNDEF)); (gdb) s 286 __asm__("bl arm_fault"); (gdb) s arm_fault (f=0x201fffe0, reason=0) at ../../../picocrt/machine/arm/crt0.c:251 251 printf("ARM fault: %s\n", reasons[reason]);