1、 源码文件查找
gdb调试可以通过以下三个命令查找源文件。
forward-search regexp
从源文件首行还是搜索 关键字regexp,并将搜索到的行号记录。这个记录可以被下一个gdb命令引用。
例:for void
搜索结果:38 void
接下来运行命令:list 则显示以38行为中心的10行内容。(要显示的行数可以指定)
search regexp
从当前行向下搜索。
reverse-search regexp
从最后一行向上搜索。
2、 查看机器指令(汇编)
disassemble
disassemble /m 十六进制显示汇编指令
disassemble /r
disassemble start,end 指定起始,结束地址
disassemble start,+length 指定起始地址和显示长度
获取地址可如下面的列子:
(gdb) info line main
Line 895 of "builtin.c" starts at pc 0x634c and ends at 0x6350.
Line 926 of "builtin.c" starts at pc 0x63e4 and ends at 0x6404.
(gdb) disas 0x634c, 0x6404
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.