Differences between revisions 3 and 4
Revision 3 as of 2013-09-01 12:22:40
Size: 1281
Comment:
Revision 4 as of 2013-09-01 12:36:55
Size: 1646
Comment: Make clear that guessing target description from packet size is not just MIPS.
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
A description may come from a user specified file (XML), the remote {{{qXfer:features:read}}} packet (also XML), or from any custom {{{to_read_description}}} routine in the target vector. For instance, the remote target supports guessing whether a MIPS target is 32-bit or 64-bit based on the size of the {{{g}}} packet. A description may come from a user specified file (XML), the remote {{{qXfer:features:read}}} packet (also XML), or from any custom {{{to_read_description}}} routine in the target vector. For instance, the remote target supports guessing which target description to use based on the size of the {{{g}}} packet (see the definition of {{{register_remote_g_packet_guess}}} in [[https://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/remote.h?cvsroot=src|remote.h]] and the implementation of {{{remote_read_description}}} in [[https://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/remote.c?cvsroot=src|remote.c]]). As an example, this is used to determine whether a MIPS target is 32-bit or 64-bit.

Target descriptions implementation

Before GDB connects to a new target, or runs a new program on an existing target, it discards any existing target description and reverts to a default gdbarch. Then, after connecting, it looks for a new target description by calling target_find_description.

A description may come from a user specified file (XML), the remote qXfer:features:read packet (also XML), or from any custom to_read_description routine in the target vector. For instance, the remote target supports guessing which target description to use based on the size of the g packet (see the definition of register_remote_g_packet_guess in remote.h and the implementation of remote_read_description in remote.c). As an example, this is used to determine whether a MIPS target is 32-bit or 64-bit.

If any target description is found, GDB creates a new gdbarch incorporating the description by calling gdbarch_update_p. Any <architecture> element is handled first, to determine which architecture's gdbarch initialization routine is called to create the new architecture. Then the initialization routine is called, and has a chance to adjust the constructed architecture based on the contents of the target description. For instance, it can recognize any properties set by a to_read_description routine. Also see Adding target described register support.

None: Internals Target-Descriptions-Implementation (last edited 2013-09-01 12:36:55 by JeremyBennett)

All content (C) 2008 Free Software Foundation. For terms of use, redistribution, and modification, please see the WikiLicense page.