次のようにgdbコマンドを使用してセグメンテーションフォールトをローカライズしますが、私は混乱している。どういう意味ですか?それを避ける方法は?gdbプログラムコア:特定のバグを取得しない
$ gdb program core
...
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000048d0000048c in ??()
(gdb) bt
#0 0x0000046a00000469 in ??()
#1 0x0000046c0000046b in ??()
#2 0x0000046e0000046d in ??()
#3 0x000004700000046f in ??()
#4 0x0000047300000472 in ??()
#5 0x0000047600000475 in ??()
#6 0x0000047800000477 in ??()
#7 0x0000047a00000479 in ??()
#8 0x0000047d0000047b in ??()
...
私は配列が範囲外であることを発見しました。しかし、私はまだ上記の現象と混同しています。これはあなたのプログラムが与えられた順序で、 は、これら2つのオプションを試してみてください(機能シンボルテーブルによって提供されていない)のgdbで関数unknowに墜落したということを意味
'bt'と入力してバックトレースを取得します。 '??' sしか表示されない場合、バイナリにはシンボルテーブルがありません。-gでコンパイルされませんでした。 – kfsone
-gでコンパイルしてもまだ表示されていますか?同じ偶数型です。 – luohao
@luohao私は自分の答えを更新しました。 –