Re: [PATCH 09/11] tests/tcg: disable pauth for aarch64 gdb tests
Luis Machado via Gdb <[email protected]> Mon, 13 Mar 2023 11:44:27 +0000
| Newsgroups | gmane.comp.gdb.devel,gmane.comp.emulators.qemu,gmane.comp.gdb.general |
|---|---|
| Message-ID | <[email protected]> |
On 3/13/23 11:22, Peter Maydell via Gdb wrote: > On Fri, 10 Mar 2023 at 18:20, Alex Benn=C3=A9e <[email protected]> w= rote: >> >> >> (adding some more gdb types to CC) >> >> Fabiano Rosas <[email protected]> writes: >> >>> Peter Maydell <[email protected]> writes: >>> >>>> On Fri, 10 Mar 2023 at 10:31, Alex Benn=C3=A9e <[email protected]= > wrote: >>>>> >>>>> You need a very new gdb to be able to run with pauth support otherwis= e >>>>> your likely to hit asserts and aborts. Disable pauth for now until we >>>>> can properly probe support in gdb. >>>>> >>>>> Signed-off-by: Alex Benn=C3=A9e <[email protected]> >>>> >>>> If it makes gdb fall over, then shouldn't we be disabling >>>> the pauth gdbstub stuff entirely ? Otherwise even if our >>>> tests are fine our users will not be... >>>> >>> >>> Have you seem my message on IRC about changing the feature name in the >>> XML? I think the issue is that we're putting the .xml in a "namespace" >>> where GDB expects to only find stuff which it has code to >>> support. Changing from "org.gnu.gdb.aarch64.pauth" to >>> "org.qemu.aarch64.pauth" made it stop crashing and I can read the >>> registers just fine. >> >> That would work, although I would prefer to probe support so we can use >> the official namespace. > > I don't think there's a way to probe for this problem. I spoke > to Luis about this, and apparently it's a bug in how gdb handles > the pauth XML description (fixed in gdb commit 1ba3a3222039eb25). > A gdb without any pauth support at all will be fine; a gdb with > the bug will report that it has pauth support but will crash > if you feed it the whole set of XML that QEMU has; a gdb > with the bug fixed will also report pauth support but won't crash. > (The bug only manifests if the full XML includes registers that GDB > doesn't care about, like the system registers; if the stub sends > only registers GDB knows about then it won't crash.) > > Luis and I came up with two options: > > (1) leave QEMU outputting the pauth xml as-is, and tell people > whose gdb 12 crashes that they should upgrade to a newer gdb > > (2) make QEMU output the pauth info under a different XML namespace, > and tell people who need backtraces when pauth is enabled > that they should upgrade to a newer gdb > > Neither of these feel great, but on balance I guess 2 is better? > > Luis: I think that rather than doing (2) with a QEMU namespace, > we should define a gdb namespace for this. That makes it clear > that this is still a gdb-upstream-sanctioned way of exposing > the pauth registers. That should be fine as well, and would work to side-step the gdb 12 bug so = it doesn't crash. We could name the feature "org.gnu.gdb.aarch64.pauth_v2" or somesuch, and s= lowly stop using the original "org.gnu.gdb.aarch64.pauth" feature. I can document the requirements for a = compliant pauth_v2. FYI, I've pushed a better documentation for the arm/aarch64 xml description= s here: https://sourceware.org/git?p=3Dbinutils-gdb.git;a=3Dcommit;h=3Dd7001b29e9f2= 56dfc60acb481d9df8f91f2ee623 https://sourceware.org/git?p=3Dbinutils-gdb.git;a=3Dcommit;h=3De0994165d1b8= 469dfc27b09b62ac74862d535812 > > thanks > -- PMM IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.