User manual
GDB SERVER FOR ARM, XSCALE AND CORTEX 
USER MANUAL 
(gdb) monitor –d stop 
(gdb) # Reset, wait 100ms, then stop. 
(gdb) cont 
See also an example of the delayed monitor command use in the 
Debugging Embedded Linux 
chapter. 
Coprocessor and Peripheral Registers 
The GDB server provides access to the ARM coprocessor registers and memory mapped 
peripheral registers. 
Peripheral Registers 
A definition of peripheral registers may be loaded as a part of the server configuration, using the 
–reg option, like this: 
sigGdbServer -cpu iMX31 -init –reg iMX31 –reg c:\myboard.def 
Notice the repeated use of the –reg option which loads register definitions from multiple files. 
The –reg option accepts files in Signum Chameleon (.def) format only. See Chameleon Debugger: 
User Manual for the format description. If the file name extension or the file path matches its 
default value, it can be omitted. The default extension of the register definition file is .def, and 
the default file location is the “target” subfolder of the server’s installation folder. 
The memory mapped peripheral registers are aggregated into the io structure. The io structure is 
subdivided into groups. (The structure and group names are case-sensitive.) The GDB ptype 
command returns information about the register list structure: 
(gdb) ptype $io 
type = struct io { 
 CCM CCM; 
 IOMUXC IOMUXC; 
 GPIO1 GPIO1; 
 … 
} 
(gdb) ptype $io.CCM 
type = struct CCM { 
 int32_t CCMR; 
 int32_t PDR0; 
 int32_t PDR1; 
 … 
 int32_t LTBR0; 
} 
To display a register value, use the print command. 
(gdb) p /x $io.CCM.CCMR 
$2 = 0x74b097d 
A register can be modified using the set var command. 
(gdb) set var $io.CCM.CCMR=0x74b0b7c 
Some Eclipse debugger versions, such as Sourcery G++ IDE, display the peripheral registers in 
the register window as the IO group. 
11 










