の call ステートメントで識別子NULL
を使用したい場合はどうすればよいですか?gdb
gdbにstdio.hを含めなかったからですか?
私は試しました:call #include <stdio.h>
しかし、これはうまくいかないようです。
NULL
はC定義であり、次のように定義されています。
#define NULL ((void *) 0)
NULL
はCプリプロセッサに置き換えられます((void *) 0)
。したがって、コンパイラに渡されることはないため、で使用することはできませんgdb
。
したがって、Jesterが提案したように実行し、を使用します(void *) 0
。
0
またはを使用するだけ(void*)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 でテスト済み。