-
使用观察窗口
(gdb) watch 表达式 设置好查看的表达式,则可以使程序在表达式成立时终止运行
eg: (gdb) watch counter>15
-
查看栈信息
(gdb) breaktrace
(gdb) bt
该命令打印当前停住地方函数调用栈的所有信息.
(gdb) breaktrace <n> (gdb) bt <n> n是一个正整数,表示可以打印栈顶上的n层信息
(gdb) breaktrace <-n> (gdb) bt <-n> -n表示一个负整数,打印栈底n层信息
(gdb) frame <n> (gdb) f <n> 当需要查看某一层栈的具体信息的时候,需要切换栈,还可以使用 (gdb) up / down <n>来上下移动栈
(gdb) info f 则可以显示出更为详尽的当前栈层的信息
(gdb) info args 显示当前函数的参数名和值
(gdb) info locals 显示局部变量及值 (gdb) info catch 显示当前函数中的异常信息 gdb可以打印出来源代码,但是务必在编译是加上-g选项 ,然后我们使用 (gdb) list 命令即可.
(gdb) list <linenum> 行号
(gdb) list <function> 函数名
(gdb) list <+offset> 当前行号的正偏移
(gdb) list <-offset> 当前行号的负偏移
(gdb) list <filename:linenum> 文件的哪一行
(gdb) list <filename:function> 文件的函数名
(gdb) list <*address> 程序运行时的语句在内存中的地址.
gdb还可以搜索 (gdb) forward-search <regexp>
(gdb) search <regexp> 向前搜索
(gdb) reverse-search <regexp> 全部搜索
指定源文件路径 (gdb) directory <dirname ... > 多个路径可以使用":"隔开
(gdb) info line 显示源代码在内存中的地址.
本文介绍GDB调试器的实用技巧,包括如何使用观察窗口监视表达式的值,如何查看调用栈信息,以及如何查看和搜索源代码等。适用于希望提高GDB使用效率的开发者。
1万+

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



