This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/RFT PATCH 0/3] Add TDB regset support
- From: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: gdb-patches at sourceware dot org, Ulrich Weigand <uweigand at de dot ibm dot com>
- Date: Mon, 10 Jun 2013 17:39:10 +0200
- Subject: Re: [RFA/RFT PATCH 0/3] Add TDB regset support
- References: <87fvwu5937 dot fsf at br87z6lw dot de dot ibm dot com> <51B1F629 dot 5070006 at redhat dot com> <87li6lud1m dot fsf at br87z6lw dot de dot ibm dot com> <51B20DFD dot 8040805 at redhat dot com> <87d2rxu6r0 dot fsf at br87z6lw dot de dot ibm dot com> <51B22D43 dot 9080304 at redhat dot com>
Pedro Alves <palves@redhat.com> writes:
> On 06/07/2013 07:15 PM, Andreas Arnez wrote:
>> Pedro Alves <palves@redhat.com> writes:
>>> You might not need to look at the auxv. Return the right tdesc
>>> depending on presence of bfd sections. See
>>> ppc_linux_core_read_description.
>>
>> This doesn't work for the TDB, because the absence of the TDB
>> register section doesn't mean that the core file target didn't
>> support it. At least we'd break the gcore.exp test case.
>
> Okay. How are the TDB registers presented to the user (info
> all-registers, etc) in the current patchset when the target supports
> them, but the inferior is presently interrupted outside a transaction,
> with live debugging? (screenshot, please! :-))
(gdb) info all-reg
pswm 0x705200180000000 505845723963588608
pswa 0x8000060a 2147485194
--- /snip/ ---
tdb0 *value not available*
tac *value not available*
tct *value not available*
atia *value not available*
tr0 *value not available*
tr1 *value not available*
tr2 *value not available*
tr3 *value not available*
tr4 *value not available*
tr5 *value not available*
tr6 *value not available*
tr7 *value not available*
tr8 *value not available*
tr9 *value not available*
tr10 *value not available*
tr11 *value not available*
tr12 *value not available*
tr13 *value not available*
tr14 *value not available*
tr15 *value not available*
pc 0x8000060a 0x8000060a <terminal_func+10>
cc 0x2 2
When there's no TDB for the current inferior's state, "value not
available" is the closest representation I could find in the current
regcache design. Or maybe there is a better way?
My assumption was that this representation is even acceptable when the
inferior runs on a target without transactional-execution support,
because there's really no difference between a program that *never uses*
transactions and a program that *can not* use transactions.
But I can certainly take a shot at an alternate version of the patch
which introduces new target descriptions "s390x-linux64v2-tx" and
"s390-linux64v2-tx" and selects one of those if the hardware supports
transactions. That's what's being proposed, right?
> The new org.gnu.gdb.s390.tdb target feature needs to be documented,
> btw.
OK, will do that in my updated patch.
> TDB support should be mentioned in NEWS too.
Will do.
> With xi:include, that's really pretty manageable. Please do take a
> look at ppc_linux_read_description and at features/rs6000/, for
> example, though there are several others in the tree. The x86 port
> has a complex selection of proper description/register set too, given
> xsave.
Did you want to hint at anything specific? Or just how to add a new
tdesc in general (and select it)?