Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 779 Bytes

call-func.md

File metadata and controls

42 lines (31 loc) · 779 Bytes

直接执行函数

例子

#include <stdio.h>

int global = 1;

int func(void) 
{
	return (++global);
}

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

技巧

使用gdb调试程序时,可以使用“call”或“print”命令直接调用函数执行。以上面程序为例:

(gdb) start
Temporary breakpoint 1 at 0x4004e3: file a.c, line 12.
Starting program: /data2/home/nanxiao/a

Temporary breakpoint 1, main () at a.c:12
12              printf("%d\n", global);
(gdb) call func()
$1 = 2
(gdb) print func()
$2 = 3
(gdb) n
3
13              return 0;

可以看到执行两次func函数后,global的值变成3
参见gdb手册.

贡献者

nanxiao