It looks like the reason QEMU's test suite passed was that the older Ubuntu gdb didn't have a fix for LP:1901026 (support remote connection over UNIX domain socket), so the test suite would simply skip the offending test and never get as far as falling over the assertion failure. After pulling various old binaries out of my backups to test I'm forced to conclude that I was simply misremembering by-hand use of the gdbstub working and I must not have used it as recently as I'd thought. So this is a bug, but not a regression.
A possible set of commits for a cherry-picked fix would be c8ec2f334c3751c28d5f and 4ef0bef68cfc777e59156fce1 (which together remove the hard-coded limit on register size and thus also the assertion), but the former is not a completely trivial patch. I haven't attempted such a cherry-pick to see if it works. A workaround is to tell QEMU not to emulate SVE (eg with "-cpu max,sve=off" -- it is the large SVE vector registers which trigger the problem. ** Summary changed: - gdb-multiarch 8.1.1-0ubuntu1 regression: assertion failure or internal error when connecting to QEMU aarch64 gdbstub + gdb-multiarch 8.1.1-0ubuntu1: assertion failure or internal error when connecting to QEMU aarch64 gdbstub -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to gdb in Ubuntu. https://bugs.launchpad.net/bugs/1908063 Title: gdb-multiarch 8.1.1-0ubuntu1: assertion failure or internal error when connecting to QEMU aarch64 gdbstub Status in gdb package in Ubuntu: New Status in gdb source package in Bionic: New Bug description: This bug is a regression introduced in 8.1.1-0ubuntu1 for Bionic -- the previous 8.1-0ubuntu3.2 gdb works fine with QEMU's gdbstub. Reproduce: Get the sources for QEMU 5.2.0, and build the aarch64-linux-user target. (It looks like Bionic's QEMU is old enough that it doesn't provoke this gdb error.) Run qemu-aarch64 -g 1234 path/to/some/aarch64/binary In another terminal, start gdb-multiarch. At the (gdb) prompt, type "target remote :1234". GDB will dump core: (gdb) target remote :1234 Remote debugging using :1234 Recursive internal problem. Aborted (core dumped) You can see a variant of this also in the QEMU test suite with "make -C your-qemu-build-dir check-tcg", where the error message includes an assertion failure: [...] timeout 60 /home/petmay01/linaro/qemu-from-laptop/qemu/tests/guest-debug/run-test.py --gdb /usr/bin/gdb-multiarch --qemu /home/petmay01/linaro/qemu-from-laptop/qemu/build/aarch64-linux/qemu-aarch64 --qargs "" --bin sha1 --test /home/petmay01/linaro/qemu-from-laptop/qemu/tests/tcg/multiarch/gdbstub/sha1.py > run-gdbstub-sha1.out /build/gdb-veKdC1/gdb-8.1.1/gdb/regcache.c:122: internal-error: void* init_regcache_descr(gdbarch*): Assertion `MAX_REGISTER_SIZE >= descr->sizeof_register[i]' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. This is a bug, please report it. For instructions, see: <http://www.gnu.org/software/gdb/bugs/>. Aborted (core dumped) /home/petmay01/linaro/qemu-from-laptop/qemu/tests/tcg/multiarch/Makefile.target:51: recipe for target 'run-gdbstub-sha1' failed To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1908063/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp