SSブログ

マクロ展開後のコードを出力するには? [C/C++]

C/C++ のデバッグ関係のメモ。

マクロ展開後のコードを出力するには?

gcc -E hoge.c

assertを無効にするには?

#define NDEBUG
#include <assert.h>

とする。

ちなみに、

(static_cast<void>  (0)) ;

に置換された。

segmentation fault したときに core を生成させるには?

プログラムが異常終了した場合、 Segmantation falt する。しかし、 core dumped しない環境がある。これは、core の出力が制限されている可能性がある。

ulimit -c unlimited

とすると、core が全て出力される。大きくなりすぎるで、適当に容量制限を付けても良い。 0 になっていると core が出力されない。

gdb

gcc で -g,-ggdb オプションを CFLAGS につけてコンパイルする。

参考文献


タグ:C linux C++ gcc Debug

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。