You can use the command
info line to map source lines to program
addresses (and vice versa), and the command
disassemble to display
a range of addresses as machine instructions. When run under GNU Emacs
info line command now causes the arrow to point to the
line specified. Also,
info line prints addresses in symbolic form as
well as hex.
info line linespec
listcommand (see section Printing source lines).
For example, we can use
info line to discover the location of
the object code for the first line of function
(gdb) info line m4_changecom Line 895 of "builtin.c" starts at pc 0x634c and ends at 0x6350.
We can also inquire (using
*addr as the form for
linespec) what source line covers a particular address:
(gdb) info line *0x63ff Line 926 of "builtin.c" starts at pc 0x63e4 and ends at 0x6404.
info line, the default address for the
is changed to the starting address of the line, so that `x/i' is
sufficient to begin examining the machine code (see section Examining memory). Also, this address is saved as the value of the
$_ (see section Convenience variables).
The following example shows the disassembly of a range of addresses of HP PA-RISC 2.0 code:
(gdb) disas 0x32c4 0x32e4 Dump of assembler code from 0x32c4 to 0x32e4: 0x32c4 <main+204>: addil 0,dp 0x32c8 <main+208>: ldw 0x22c(sr0,r1),r26 0x32cc <main+212>: ldil 0x3000,r31 0x32d0 <main+216>: ble 0x3f8(sr4,r31) 0x32d4 <main+220>: ldo 0(r31),rp 0x32d8 <main+224>: addil -0x800,dp 0x32dc <main+228>: ldo 0x588(r1),r26 0x32e0 <main+232>: ldil 0x3000,r31 End of assembler dump.
Some architectures have more than one commonly-used set of instruction mnemonics or other syntax.
set assembly-language instruction-set
x/icommands. Currently this command is only defined for the Intel x86 family. You can set instruction-set to either
i8086. The default is
Go to the first, previous, next, last section, table of contents.