Skip to content

Latest commit

 

History

History
62 lines (39 loc) · 987 Bytes

step-and-next-function.md

File metadata and controls

62 lines (39 loc) · 987 Bytes

是否进入带调试信息的函数

例子

#include <stdio.h>

int func(void)
{
	return 3;
}

int main(void)
{
	int a = 0;
	
	a = func();
	printf("%d\n", a);
	return 0;
}

技巧

使用gdb调试遇到函数时,使用step命令(缩写为s)可以进入函数(函数必须有调试信息)。以上面代码为例:

(gdb) n
12              a = func();
(gdb) s
func () at a.c:5
5               return 3;
(gdb) n
6       }
(gdb)
main () at a.c:13
13              printf("%d\n", a);

可以看到gdb进入了func函数。

可以使用next命令(缩写为n)不进入函数,gdb会等函数执行完,再显示下一行要执行的程序代码:

(gdb) n
12              a = func();
(gdb) n
13              printf("%d\n", a);
(gdb) n
3
14              return 0;

可以看到gdb没有进入func函数。

详情参见gdb手册

贡献者

nanxiao