Next: Registers and Memory, Previous: OS ABI Variant Handling, Up: Target Architecture Definition
Each gdbarch
is associated with a single bfd architecture,
via a bfd_arch_
arch constant. The gdbarch
is
registered by a call to register_gdbarch_init
, usually from
the file's _initialize_
filename routine, which will
be automatically called during gdb startup. The arguments
are a bfd architecture constant and an initialization function.
The initialization function has this type:
static struct gdbarch * arch_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
The info argument contains parameters used to select the correct
architecture, and arches is a list of architectures which
have already been created with the same bfd_arch_
arch
value.
The initialization function should first make sure that info
is acceptable, and return NULL
if it is not. Then, it should
search through arches for an exact match to info, and
return one if found. Lastly, if no exact match was found, it should
create a new architecture based on info and return it.
Only information in info should be used to choose the new
architecture. Historically, info could be sparse, and
defaults would be collected from the first element on arches.
However, gdb now fills in info more thoroughly,
so new gdbarch
initialization functions should not take
defaults from arches.