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 版权协议,转载请附上原文出处链接和本声明。