gdb使用指南

官方手册http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html
Debugging with gdb (pdf)

我们知道,编译hello.c的文件是#gcc -c hello.c,然后生成hello.o文件;再生成可执行文件是#gcc -o hello hello.o;合成一步执行就是#gcc -Wall -o hello hello.c。其中-Wall是输出编译时的警告信息,要注意的是-o进跟着可执行文件的名字,hello.c可以放在-o之前。要是 hello.cpp的话,即要是运行C++程序的话,把gcc换成g++就可以了。
编译生成hello文件,并能够使用gdb调试之:#gcc -Wall -g -o hello hello.c
开始调试:
#gdb hello   //如果忘记输入hello的话,可以在下面输入(gdb)file hello;如果是想终止当前调试的程序的话,可以输入(gdb)kill
...                  //显示信息
(gdb)break XXX         //在运行前设置断点,XXX既可以是行号,也可以是变量名或函数名

(gdb)info break       //查看断点信息
...
(gdb)run XXX            //运行hello,XXX是可能要输入的参数,就是argv[]那些
...
(gdb)list                     //从程序停在断点的位置开始,打印10行
...
(gdb)next                  //一次执行一条语句,不进入函数体
(gdb)step                  //一次执行一条语句,进入函数体

(gdb)finish                //一直执行到从当前函数返回,和step合用

  1. (gdb)frame 3          //跳转到函数堆栈中索引为3的函数上下文

(gdb)cont                  //程序一直执行,直到遇到下一个断点,或结束


(gdb)watch XXX      //设置观察点
(gdb)print XXX         //输出你要查看的变量值
(gdb)where            //堆栈跟踪记录

(gdb)make               //重新生成可执行文件
(gdb)shell               //不必退出gdb就可以运行shell命令,然后输入exit就可以回到gdb中
(gdb)quit                  //退出gdb


推荐参考资料:

第一章 一 个GDB会话样例
第二章 进 入和离开GDB
第三章 GDB 命令
第四章 在 GDB里运行程序
第五章 中 断和继续
第六章 检 查栈
第七章 检 查源文件
第八章 查 看数据
第九章 C 预处理宏
第十章 跟 踪点
第十一章 调 试使用覆盖技术的程序
第十二章 用 GDB调试不同语言编写的程序
第十三章 查 看符号表
第十四章 改 变执行
第十五章 GDB 文件
第十六章 设 置调试目标
第十七章 调 试远程程序
第十八章 配置相关的信息

收藏  | 打印  | 字体:  -缩小  放大+     下一页  
[ x ] 请正确填写下面信息


是否保存此网页快照 是否公开此收藏

查看全部评论(0)我来说两句

更多... gdb 相关文章