2012-11-16 259 views

回答

2

只需使用0(void*)0。没有什么花哨。

1

NULL是C限定,某处定义为:

#define NULL ((void *) 0) 

NULL是由C预处理器替换为((void *) 0)。所以它永远不会传递给编译器,所以你不能在gdb中使用它。

这样做Jester建议,并只使用(void *) 0

+0

谢谢你,我很习惯使用NULL ....看来我要离开的背后它在gdb。 – CDT

+0

NULL现在可以使用'-ggdb3':http://stackoverflow.com/a/31680508/895245 –

0

当前GCC和GDB可以看到定义,但是你必须用-ggdb3-g编译是不够的。

输入程序:

#include <stdio.h> 
#define ABC 123 

int main() { 
    return 0; 
} 

GDB:

# start is required. 
start 
print ABC 
print NULL 

输出:

$1 = 123 
$2 = (void *) 0x0 

在Ubuntu 14.04测试与GCC 4.8和GDB 7.7.1。

参见:How do I print a #defined constant in GDB?

+0

选项'-g3'也可以。 – alk

相关问题