coreをダンプするように設定して、デバッグする手順
1. プログラムのコンパイル
$ g++ -O0 -g example.cpp
最適化無効、デバッグ情報付加でビルド
2. coreをダンプするように設定
$ ulimit -c unlimited
最近の環境ではデフォルトでcoreを出力しない設定になっていることが多いです。
3. ビルドしたプログラムの実行
$ ./a.out
$ ls
a.out core example.cpp
4. デバッグ
$ gdb a.out core