Linux下gdb调试

关于gdb的其他客套话不多说,直接进入正题。

 

一、gdb基本命令列表

 

命令 解释 简写
file 装入想要调试的可执行文件
list 列出产生执行文件源代码的一部分 l
next 执行一行源代码但不进入函数内部 n
step 执行一行源代码而且进入函数内部 s
run 执行当前被调试的程序 r
continue 继续执行程序 c
quit 终止gdb q
print 输出当前指定变量的值 p
break 在代码里设置断点 b
info break 查看设置断点的信息 ib
delete 删除设置的断点 d
watch 监视一个变量的值,一旦值有变化程序停住 wa
help gdb中的帮助命令 h

 

 

 

二、gdb命令运用举例

1.新建一个源文件vi yrp.cc,源代码如下:

#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
int main()
{
int i,j;
cout<<endl<<“Input two int number:”<<endl;
cin>>i>>j;
cout<<“Before swap(),i=”<<i<<” j=”<<j<<endl;
swap(i,j);
cout<<“After swap(),i=”<<i<<” j=”<<j<<endl<<endl;
return 0;
}

 

2.生成可执行文件 g++ -g -o yrp yrp.cc  注意必须使用-g参数,编译会加入调试信息,否则无法调试执行文件.

 

3.启动调试 gdb yrp

 

4.查看源文件 list 1,(由第一行开始)回车重复上一次指令

 

5.设置调试断点 break 16,在第16行设置断点, info break查看断点信息(简写ib)

 

6.调试运行输入 run

 

7.单步调试 step,进入函数内部

 

8.查看变量 print  举例print b

 

9.查看函数堆栈 bt,退出函数 finish

 

10.继续运行直到下一个断点或主函数结束 continue

 

11.退出调试 quit

 

Tagged:

Comments are closed.