One of the challenges of using GDB to debug embedded systems is that there are so many minor variants of each processor architecture in use. It is common practice for vendors to start with a standard processor core — ARM, PowerPC, or MIPS, for example — and then make changes to adapt it to a particular market niche. Some architectures have hundreds of variants, available from dozens of vendors. This leads to a number of problems:
set architecturecommand can be error-prone.
To address these problems, the GDB remote protocol allows a target system to not only identify itself to GDB, but to actually describe its own features. This lets GDB support processor variants it has never seen before — to the extent that the descriptions are accurate, and that GDB understands them.
GDB must be linked with the Expat library to support XML target descriptions. See Expat.
|• Retrieving Descriptions:||How descriptions are fetched from a target.|
|• Target Description Format:||The contents of a target description.|
|• Predefined Target Types:||Standard types available for target descriptions.|
|• Enum Target Types:||How to define enum target types.|
|• Standard Target Features:||Features GDB knows about.|