[PATCH] gdbserver/s390: Enable high GPRs, VX, TDB with 31-bit gdbserver.

Marcin Kościelnicki koriakin@0x04.net
Thu Feb 25 19:13:00 GMT 2016


On 25/02/16 18:16, Andreas Arnez wrote:
> On Fri, Feb 12 2016, Marcin Kościelnicki wrote:
>
>> Currently, 31-bit gdbserver doesn't support collecting/supplying high
>> GPRs, VX registers, and TDB data.  This is not much of a problem now,
>> since machines that have them usually have a 64-bit gdbserver that can
>> be used to debug 31-bit targets just fine.  However, with fast
>> tracepoints, it's not possible to use a 64-bit gdbserver with a 31-bit
>> IPA (and thus a 31-bit target), so 31-bit gdbserver has to be used
>> for 31-bit targets.
>
> Hm, this is an unfortunate restriction.  It might be a good idea to lift
> that someday...

Right - ideally, we should fix the interfaces to carefully marshall 
pointers and make libinproctrace.so for all multilib variants, like libgcc.
>
> Anyway --
>
>> Thus, this patch is needed to allow collecting
>> high GPRs and VX registers on 31-bit targets via fast tracepoints.
>>
>> gdb/gdbserver/ChangeLog:
>>
>> 	* linux-s390-low.c (s390_num_regs_3264): Define on 31-bit too.
>> 	(s390_regmap_3264) [!__s390x__]: New global.
>> 	(s390_collect_ptrace_register): Skip map entries containing -1.
>> 	(s390_supply_ptrace_register): Ditto.
>> 	(s390_fill_gprs_high): New function.
>> 	(s390_store_gprs_high): New function.
>> 	(s390_regsets): Add NT_S390_HIGH_GPRS.
>> 	(s390_get_hwcap): Enable on 31-bit.
>> 	(have_hwcap_s390_high_gprs): Enable on 31-bit.
>> 	(s390_arch_setup): Enable detection of high GPRs, TDB, VX on 31-bit.
>> 	Detect NT_S390_HIGH_GPRS.
>> 	(s390_usrregs_info_3264): Enable on 31-bit.
>> 	(s390_regs_info): Enable regs_info_3264 on 31-bit.
>> 	(initialize_low_arch): Initialize s390_regsets_info_3264 on 31-bit.
>
> This is OK.
>
> Thanks for your contribution!
>

Thanks, pushed.



More information about the Gdb-patches mailing list