GDB 调试

  • Post author:
  • Post category:其他


 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 常用命令列表:



版权声明:本文为sxy19930313原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。