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参数,编译会加入调试信息,否则无法调试执行文件.

Linux下gdb调试


3.启动调试gdb yrp

Linux下gdb调试


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

Linux下gdb调试


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

Linux下gdb调试


6.调试运行输入run

Linux下gdb调试


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

Linux下gdb调试


8.查看变量print  举例print b

Linux下gdb调试


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

Linux下gdb调试


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

Linux下gdb调试


11.退出调试quit

Linux下gdb调试




结束!






Linux下gdb调试,布布扣,bubuko.com

Linux下gdb调试

上一篇:oracle 中 rownum 和 row_number()


下一篇:Sqlserver中实现oralce 数据库的rownumber