This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Enable x86 XML target descriptions


On 02/22/2010 01:41 PM, H.J. Lu wrote:
>>>
>>> Please see if my latest patch is OK:
>>>
>>> ---
>>>  /* Get CS register.  */
>>>   errno = 0;
>>>   cs = ptrace (PTRACE_PEEKUSER, tid,
>>>                offsetof (struct user_regs_struct, cs), 0);
>>>   if (errno != 0)
>>>     perror_with_name (_("Couldn't get CS register"));
>>>
>>>   /* Value of CS register:
>>>      1. 64bit: 0x33.
>>>      2. 32bit: 0x23.
>>>    */
>>>   if (cs == 0x33)
>>>     return tdesc_amd64_linux;
>>>   else
>>>     return tdesc_i386_linux;
>>> ---
>>>
>>> In kernel, there is
>>>
>>>       regs->cs = test_thread_flag(TIF_64BIT_ILP32) ? __USER_CS : __USER32_CS;
>>
>> I fear that's rather fragile.  I mean, the actual value of
>> __USER_CS/__USER32_CS is just an implementation detail isn't it?
>>
> 
> That is how strace checks 32bit process on Linux/x86-64  I have
> discussed it with Peter and Suresh. It is very unlikely Linux kernel will
> break strace.  In any case,  we will add a new ptrace option to Linux
> 2.6.35 to get TIF_64BIT_ILP32 among other things. I will update gdb
> to try the new ptrace option first and then fail back to CS register.
> 

Uhm... TIF_64BIT_ILP32 didn't go upstream (remember, we shut down that
project?)

What I suggested was to add an strace option to get the segment
descriptor flags, which would include the CS.L bit for 64-bit mode.

	-hpa


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]