Re: mode processor mode switch

Pedro Alves <[email protected]>
Newsgroups gmane.comp.gdb.devel,gmane.comp.gdb.general
Message-ID <[email protected]>
On 1/16/20 2:51 PM, Luis Machado wrote:
> Hi,
> 
> On 1/14/20 8:58 AM, Jirka Koutný wrote:
>> Hello,
>>
>> I have a 32-bit elf executable which at some point switches to long mode
>> (kernel is 64-bit). Is there a way to tell gdb about the .code32/64
>> directives? Because expectedly the switch messes up disassembly and
>> stepping.
>>
>> Thank you
>> Jirka
>>
> 
> Unfortunately i don't think there is a good way to achieve this with the current implementation.
> 
> You could teach GDB about the quirks in the architecture, but it sounds better to have a more general solution.
> 
> I'm working on making this more flexible though, since i have a need to make the architecture information per-thread, at least the target description with the registers and types.
> 

For x86-64 in particular, I think the ideal solution would be for
the remote target to always report the widest mode it supports,
which would be 64-bit, and then do the 32-bit/16-bit modes
presentation all on the gdb side (i.e., user-visible 32-bit on
top of 64-bit description).  Mode switching would not change the remote
target description.  This is unlike the current architecture where a
remote server reports a 32-bit description for a 32-bit process even
if the remote server is actually running on a 64-bit machine.

Thanks,
Pedro Alves
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.