(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 显示源代码在内存中的地址.