GDB 程序调试常用命令

Posted 晨峰说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDB 程序调试常用命令相关的知识,希望对你有一定的参考价值。

调试之前

若要在GDB中调试程序在编译时需要加上调试信息
在GCC中添加的方法

GCC -g a.c -o a.exe

或下面提供更符合GDB的调试信息

GCC -ggdb a.c -o a.exe

运行流程

命令作用
-start开始执行程序,在main函数第一句处停止
-continue、-c从当前位置继续执行
-run、-r执行程序到下一个断点或程序结束
-next、-n执行下一句,会进入其他函数
-step、-s执行下一步,进入其他函数
-set args <参数>指定运行的参数
-show arge查看已经设置的参数
-path <路径>设定程序运行的路径
-show path查看设定好的路径

变量、栈的操作

命令作用
-info <变量名> 、-i <变量名>查看局部变量
-info locals、-i locals查看所有局部变量的值
-set var <变量名>=<值>修改当前变量的值
-print <表达式>、-p <表达式>查看表达式的值
-display <变量名>跟踪一个变量,每次停止都显示这个变量
-x /<整数> <变量名>查看从变量名所指内存单元开始的整数个字节的内容
-backtrace、bt查看函数及其参数
-frame <栈层次(整数)> 、-f <栈层次>切换到指定栈,然后可以查看其他位置的变量,像全局变量、另一个局部变量

断点相关操作

命令作用
-break <行数、函数名>、-b <行数、函数名>在某行或某函数设置断点
-break <行数、函数名> if <表达式>在某行或某函数设置当表达式成立时的断点
-info breakpoints查看所有断点和它们的断点号
-delete breakpoints <断点号>删除断点
-disable breakpoints <断点号>禁用断点
-enable breakpoints <断点号>启用断点
-watch <变量名>当变量改变时中断
-info watchpoints、i watchpoints查看所有watch的变量

以上是关于GDB 程序调试常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux—常用gdb调试命令汇总

gdb调试程序

GDB常用命令

Linux系统下GDB调试

如何用gdb调试erlang运行期

gdb调试常用实用命令和core dump文件的生成(转)