gdb调试程序:
gdb program或gdb attach processId
常用的命令有:
list l 列出代码
run r 运行程序
continue c 继续程序的运行
print p 打印变量值
next n 执行下一条语句
step s 若为函数调用,则进入函数内部
finish 结束函数运行,返回上一层
break b 设置断点
watch 观测变量值
backtrace bt 观测堆栈信息
先以一个C++程序来介绍gdb各个命令的使用方法
#include<iostream> using namespace std; int fun(int i) { int s = i * i; cout << s << endl; return 0; } int main(int argc, char* argv[]) { int a = 0; a = 1; a = 2; fun(a); return 0; }
利用g++编译,加入调试信息:g++ -Wall -g test.cpp -o test 其中-Wall标志意思是显示全部的警告信息, -g即gdb调试信息。
使用gdb test 开始调试或者先输入gdb,然后在gdb命令行中输入file test来调试,如下所示:
然后list,设断点,打印print变量
watch观察变量