linux c 应用程序调试,Linux下C语言开发(gdb调试)

我们程序猿在开发代码的时候,可能编写代码占整个开发过程的百分之十不到,打不时间是在调试。调试很容易帮我们找到程序bug,特别是单步调试,单步调试让我们知道程序是如何行走的。在windows下面,我们有visual studio工具,而在Linux下面,实际上除了gdb工具之外,没有别的选择了。那么,怎么用gdb进行调试呢?我们可以一步一步来调试

一些简单的对文件的创建,权限修改,编写,保存,编译,执行可以查看上一篇Linux下C语言开发(开篇hello world.) 利用vim创建test.c文件,并编写此文件,test.c文件的内容如下:

0818b9ca8b590ca3270a3433284dd417.png

编写完后,确保程序没问题,在终端test.c文件当前目录输入gcc test.c -o test编译生成可执行文件test,最后./test运行test文件

0818b9ca8b590ca3270a3433284dd417.png

既然需要调试,那么生成的可执行文件就需要包含调试的信息,这里应该怎么做呢?很简单,在终端,输入 gcc test.c -g -o test。

调试的步骤基本如下所示:

1)首先,输入gdb test

0818b9ca8b590ca3270a3433284dd417.png

2)进入到gdb的调试界面之后,输入list,即可看到test.c源文件

0818b9ca8b590ca3270a3433284dd417.png

3)设置断点,输入b main

4)启动test程序,输入run

5)程序在main开始的地方设置了断点,所有程序在printf出断住

0818b9ca8b590ca3270a3433284dd417.png

6)这时候,可以单步跟踪。s单步可以进入到函数,而n单步则越过函数继续往下执行

7)如果希望从断点处继续运行程序,输入c;即当输入s单步进入函数,只需输入c,即可回到断点处继续运行程序

0818b9ca8b590ca3270a3433284dd417.png

8)希望程序运行到函数结束,输入finish(程序必须处于run状态,当程序执行完毕也将退出run状态);再次启动,输入run

9)查看断点信息,输入info break

0818b9ca8b590ca3270a3433284dd417.png

10)如果希望查看堆栈信息,输入bt

11)希望查看内存,输入x + 内存地址

0818b9ca8b590ca3270a3433284dd417.png

12)删除断点,则输入delete break + 断点序号

0818b9ca8b590ca3270a3433284dd417.png

13)希望查看函数局部变量的数值,可以输入print + 变量名

0818b9ca8b590ca3270a3433284dd417.png

14)希望修改内存值,直接输入print + *地址 = 数值

0818b9ca8b590ca3270a3433284dd417.png

15)希望实时打印变量的数值,可以输入display + 变量名。则每当运行到此变量都会打印变量的数值

16)查看函数的汇编代码,输入disassemble + 函数名

0818b9ca8b590ca3270a3433284dd417.png

17)退出gdb调试,输入quit即可

以上就是我的Linux下C语言开发(gdb调试)的学习,Linux下C语言开发的博客会陆续上传。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值