GDB 调试

 1 #include <stdio.h>
  2 #include <stdlib.h>
  3 
  4 static int sum(int value);
  5 
  6 struct inout
  7 {
  8     int value;
  9     int result;
 10 };
 11 
 12 int main(int argc, char *argv[])
 13 {
 14     struct inout *io = (struct inout *)malloc(sizeof(struct inout));
 15 
 16     if(NULL == io)
 17     {
 18         printf("申请内存失败\n");
 19         return -1;
 20     }
 21 
 22     if(argc != 2)
 23     {
 24         printf("参数输入错误!\n");
 25         return -1;
 26     }
 27 
 28     io->value = *argv[1] - '0';
 29     io->result = sum(io->value);
 30     printf("你输入的值为:%d, 计算的结果为:%d\n", io->value, io->result);
 31     return 0;
 32 }
 33 
 34 static int sum(int value)
 35 {
 36     int result = 0;
 37     int i = 0;
 38 

编译加入GDB 调试,生成可执行文件test: gcc gdb_test.c  -o  test  -g

1.进入GDB:gdb  test 

2.设置参数(set  args  3),GDB模式下程序是不运行的,需要通过run 运行程序,输出执行的结果

3.打印代码内容(list  1 —— 一次只能显示10代码,需要敲回车(Enter),依次输出所有程序内容)

4.设置断点,断点分为行断点(b 32)和函数断点(b sum)

5.显示变量的值(display 变量名),通过n执行下一步操作,可以查看for循环信息

6.修改变量的值。 set result=6   continue(c) 继续运行

GDB 常用命令列表:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值