gdb.info: Machine Code
Go backward to Source Path
Go up to Source
Go to the top op gdb
Source and machine code
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
mode, the `info line' command causes the arrow to point to the line
specified. Also, `info line' prints addresses in symbolic form as well
`info line LINESPEC'
Print the starting and ending addresses of the compiled code for
source line LINESPEC. You can specify source lines in any of the
ways understood by the `list' command (*note Printing source
For example, we can use `info line' to discover the location of the
object code for the first line of function `m4_changequote':
(gdb) info line m4_changequote
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.
After `info line', the default address for the `x' command is
changed to the starting address of the line, so that `x/i' is
sufficient to begin examining the machine code (*note Examining memory:
Memory.). Also, this address is saved as the value of the convenience
variable `$_' (*note Convenience variables: Convenience Vars.).
This specialized command dumps a range of memory as machine
instructions. The default memory range is the function
surrounding the program counter of the selected frame. A single
argument to this command is a program counter value; GDB dumps the
function surrounding this value. Two arguments specify a range of
addresses (first inclusive, second exclusive) to dump.
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 disassembly-flavor INSTRUCTION-SET'
Select the instruction set to use when disassembling the program
via the `disassemble' or `x/i' commands.
Currently this command is only defined for the Intel x86 family.
You can set INSTRUCTION-SET to either `intel' or `att'. The
default is `att', the AT&T flavor used by default by Unix
assemblers for x86-based targets.
Created Mon Nov 8 17:42:36 2004 on tillpc with info_to_html version 0.9.6.