如果我想NULL
在gdb
's call 语句中使用标识符,我该怎么办?
是因为我没有在 gdb 中包含 stdio.h 吗?
我试过了:call #include <stdio.h>
但这似乎不起作用。
NULL
是一个 C 定义,在某处定义为:
#define NULL ((void *) 0)
NULL
被 C 预处理器替换为((void *) 0)
. 所以它永远不会传递给编译器,所以你不能在gdb
.
所以按照Jester的建议去做,然后使用(void *) 0
.
只需使用0
or (void*)0
。没有什么花哨。
目前的 GCC 和 GDB 可以看到定义,但是必须用 编译-ggdb3
,-g
是不够的。
输入程序:
#include <stdio.h>
#define ABC 123
int main() {
return 0;
}
广发银行:
# start is required.
start
print ABC
print NULL
输出:
$1 = 123
$2 = (void *) 0x0
在 Ubuntu 14.04 上使用 GCC 4.8 和 GDB 7.7.1 进行测试。