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的变量

猜你喜欢

转载自blog.csdn.net/zoollcar/article/details/86500769