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.
本文详细介绍了如何使用GDB进行源码文件查找和机器指令查看,包括使用forward-searchregexp、searchregexp、reverse-searchregexp命令进行源文件搜索,以及通过disassemble命令查看汇编指令的具体操作步骤。
813

被折叠的 条评论
为什么被折叠?



