Chapter 9. Examining Source Files 639.5. Source and machine codeYou 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 rununder 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 as hex.info line linespecPrint the starting and ending addresses of the compiled code for source line linespec. You canspecify source lines in any of the ways understood by the list command (refer to Section 9.1Printing source lines).For example, we can use info line to discover the location of the object code for the first line offunction m4_changequote:(gdb) info line m4_changequoteLine 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 particularaddress:(gdb) info line *0x63ffLine 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 theline, so that x/i is sufficient to begin examining the machine code (refer to Section 10.5 Examiningmemory). Also, this address is saved as the value of the convenience variable $_ (refer to Section 10.9Convenience variables).disassembleThis specialized command dumps a range of memory as machine instructions. The default mem-ory range is the function surrounding the program counter of the selected frame. A single ar-gument to this command is a program counter value; gdb dumps the function surrounding thisvalue. 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 0x32e4Dump of assembler code from 0x32c4 to 0x32e4:0x32c4 main+204 : addil 0,dp0x32c8 main+208 : ldw 0x22c(sr0,r1),r260x32cc main+212 : ldil 0x3000,r310x32d0 main+216 : ble 0x3f8(sr4,r31)0x32d4 main+220 : ldo 0(r31),rp0x32d8 main+224 : addil -0x800,dp0x32dc main+228 : ldo 0x588(r1),r260x32e0 main+232 : ldil 0x3000,r31End of assembler dump.Some architectures have more than one commonly-used set of instruction mnemonics or other syntax.