Linux:GDB调试

来源:互联网 发布:盘点2016年网络流行语 编辑:程序博客网 时间:2024/06/06 00:19

断点的设置数据输出的命令应该是gdb的核心内容

一、在进行GDB调试之前,需要导入代码

(gdb)cd /.../...   (cd到uwaloha.o文件相应的路径下)

(gdb)file uwaloha.o



那么可执行文件是怎么来的呢?下面举例说明一下:

[easie@localhost gdb-test]$    cd  /.../...   (cd到 bugging.cc文件相应的路径下)

[easie@localhost gdb-test]$    g++  -o  bugging  -g  bugging.cc   (得到可执行文件bugging)

[easie@localhost gdb-test]$    ./bugging  (可直接运行代码,输出结果)

进入gdb调试环境:

[easie@localhost gdb-test]$  gdb

(gdb)file  bugging   (导入可执行文件)


二、 常用命令

l : 输出代码,输出当前上下各10行的代码 b 行数 : 在那一行上设置断点 r: 运行整个程序,直至遇到断点 s: 单步继续执行(进入函数) n: 单步继续进行 (不进入函数,直接把子函数一并运行完) q: 退出gdb d num : num为断点编号, 删除该断点 c : continue , 继续运行直至下一个断点 p exp : 查看变量exp的内容 k:kill掉当前运行的程序(然后再用r来重新调试)

1、(gdb)list  1              //查看源文件,列出前十行代码(简写为:l  1)

2、(gdb) [enter]           //继续按enter键,可以重复上一命令



3、(gdb)break  n            //在第n行设置断点

       (gdb)info break       // (或 i  b)查看断点信息

        (gdb)d  n                //删除在第n行设置的断点

4、(gdb)s              //(step)单步调试,进入函数内部

5、(gdb)r              //(run)运行整个程序,直到遇到断点

6、(gdb)p  b         //(print  b)查看变量

7、(gdb)bt            //查看函数堆栈

8、(gdb)c            //continue,继续运行直到下一个断点或主函数结束

9、(gdb)finish    //退出函数

10、(gdb)q         //(或quit)退出gdb调试