Re: can target code change architecture setting?

Doug Evans <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CADPb22TgJvjVNQeRH54K0Vs8RC5Qf=FvauB3MNbpndXBAomW8g@mail.gmail.com>
On Tue, Oct 11, 2016 at 7:29 AM, Duane Ellis <[email protected]> wrote:
>>
>>> Question #2 - How should the remote debugger respond to GDB?
>>>
>>>      I don't think there is an "architecture change" packet.
>>>
>>
>> Such packet is not needed, because GDB has to determine the gdbarch
>> of each when unwinding.
>
> I think you are making the assumption that GDB always has access to full debug (i.e.: dwarf) information.
>
> In bare metal - You don’t always have this, you might have *labels* only (function name vrs address) but no source, no dwarf information.
>
> The only solution is to *ask* the target “what is your *current* arch.
>
> Or the target needs to send a “target-arch-change-indication” in some way.

Agreed.

Consider booting some x86 kernel on qemu (e.g., passing -s -S to qemu).
At the start $pc is at the x86 reset location and the architecture is 16-bit.

(gdb) tar ext :1234
Remote debugging using :1234
0x000000000000fff0 in ?? ()

At some later point the o/s will switch to 32 or 64-bit mode but until
then gdb isn't as useful as one might want it to be.
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.