Ubuntu16.04环境下GDB调试

摘要

本文主要介绍使用gdb进行调试的方法


一、GDB简介

GDB可以调试C、C++、 Objective-C、 Pascal、Ada等语言编写的程序;被调试的程序可以跟GDB运行于同一台电脑,也可运行于不同电脑使用GDB我们可以设置断点使程序停住监视或修改程序中变量的值跟踪代码执行过程


二、GDB命令

命令 功能
file 装入想要调试的可执行文件
kill 中指正在调试的程序
list 列出产生执行文件的源代码的一部分
run 执行当前被调试的程序
c 继续运行程序
quit 中止gdb
print 查看变量的值
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调试,能够提高程序猿的编程效率。大家一起来试试吧

猜你喜欢

转载自blog.csdn.net/lee_goi/article/details/109263253