创建三个文件:test.c、add.c、add.h。对比step-mode 模式的差别。
test.c文件代码展示如下:
#include <stdio.h>
#include "add.h"
int main(void)
{
int a = 10;
int b = 20;
int c = add(20,10);
printf("%d\n",c);
return 0;
}
add.c文件代码展示如下:
#include <stdio.h>
#include "add.h"
int add(int a,int b)
{
return a + b;
}
add.h文件代码展示如下:
#ifndef ADD_H__
#define ADD_H__
int add(int a, int b);
#endif
编译文件:
gcc -c -g test.c
gcc -c add.c
gcc test.o add.o -o test
进入调试文件:
gdb test
使用step-mode调试程序
(gdb) show step-mode
Mode of the step operation is off.
(gdb) run
Starting program: /home/wjc/test2/test
Breakpoint 1, main () at test.c:9
(gdb) s
9 int c = add(20,10);
(gdb) s
10 printf("%d\n",c);
(gdb) c
Continuing.
30
[Inferior 1 (process 3423) exited normally] (gdb) set step-mode on
(gdb) run
Starting program: /home/wjc/test2/test
Breakpoint 1, main () at test.c:9
(gdb) s
9 int c = add(20,10);
(gdb) s
0x000055555555468f in add ()
(gdb) c
Continuing.
30
[Inferior 1 (process 3424) exited normally]