摘要
本文主要介绍使用gdb进行调试的方法
文章目录
一、GDB简介
GDB可以调试C、C++、 Objective-C、 Pascal、Ada等语言编写的程序;被调试的程序可以跟GDB运行于同一台电脑,也可运行于不同电脑使用GDB我们可以设置断点使程序停住监视或修改程序中变量的值跟踪代码执行过程
二、GDB命令
命令 | 功能 |
---|---|
file | 装入想要调试的可执行文件 |
kill | 中指正在调试的程序 |
list | 列出产生执行文件的源代码的一部分 |
run | 执行当前被调试的程序 |
c | 继续运行程序 |
quit | 中止gdb |
查看变量的值 | |
break | 在代码设置断点 |
… | … |
三、程序调试修改
step1:编写好调试程序
该程序功能是输入一个数,把这个数倒序输出。
step2:编译连接生成可执行文件
gcc -o hello -g hello.c
step3:开始调试
格式
gdb [程序名]
其中参数l为显示部分带序号代码
whatis inum 显示变量类型
在19处设置断点
之后执行发现,输入100时输出为010;
重新在6处设置断点,并逐步调试
发现在循环中,inum为10时不再进入循环,问题就出现在这里!应该包含10!
step3:修改代码,重新执行
得到正确的结果
四、内存出错的GDB调试
step1:构建函数
step2:调试
根据:
ulimit -c 1000 #字数可以改变
让系统产生core文件
运行程序,让程序崩溃,产生core文件
gdb配合core文件,定位问题
五、总结
通过对在Ubuntu下进行gdb调试,我更加清楚了程序调试的方法,对于程序猿来说,调试至关重要,掌握了gdb调试,能够提高程序猿的编程效率。大家一起来试试吧