gdb代码调试

本文详细介绍了如何使用gdb进行代码调试,包括基本环境搭建、调试时指定传入参数、查看源码、设置断点、查看和修改变量值等关键步骤,帮助开发者更有效地定位和解决问题。
摘要由CSDN通过智能技术生成

gdb代码调试

之前一篇博客


B站视频

基本环境搭建

基本代码结构 main.c

#include <stdio.h>

int main(int argc, char const *argv[])
{
   
    printf("输出的参数数量有:%d\n",argc);
    for (int i = 0; i < argc; i++)
    {
   
        printf("第 %d 个参数为:%s\n",i+1,argv[i]);
    }
    
    return 0;
}

非常简单的一段代码。gcc相关内容见这里

然后就是开始编译它:

gcc main.c -g -o main
  • -g在代码中加入gdb的调试信息

开始调试

# 进入调试模式
gdb main
# 开始运行程序
r
# 退出调试模式
q

调试时指定传入参数

就是int main(int argc, char const *argv[])argcargv这俩货。

set args 输入你想穿入的参数
# 然后开始运行
r

效果图:

image-20210819232623745

查看源码

  • l 文件名:行号
  • l 文件名:函数名

默认的文件名就是你当前运行的文件

image-20210821135742333

打断点

  • b 文件名:行号
  • b 文件名:函数名

同样,默认的文件名就是当前运行的文

  • b 行号 if 变量==值

这种就是条件断点,当满足后面设定的值时,断点才会生效。


查看所有打得断点

  • info b命令

删除断点

  • d 断点编号

禁用某个断点

  • dis 断点编号

重新启用某个断点

  • ena 断点编号

查看某个变量的值

  • p 变量名

查看变量的类型

  • ptype 变量

让这个变量在调试过程中一直展示

  • display 变量

设置这个变量之后,只要代码停住,就会展示这个变量。


调试代码

  • n,遇到函数不会进入函数体

  • step,遇到函数会进入函数体

  • continue,继续执行,直到停止到下一个断点位置

  • finish,跳出函数体


修改变量的值

  • set var 变量=新的值

就可以通过这个命令,强制设定一些值


除了r之外,启动调试的另一种方式

  • start直接运行第一行代码

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值