1. ホーム
  2. c++

[解決済み] セグメンテーションフォールトが発生するコード行を決定しますか?

2022-04-18 04:24:42

質問

が発生するコードの誤りをどのように判断すればよいのでしょうか? セグメンテーション違反 ?

私のコンパイラ( gcc )は、プログラム中の故障箇所を表示しますか?

解決方法は?

GCCではできませんが、GDB(a デバッガ ということです。プログラムをコンパイルするには -g のように、スイッチを入れてください。

gcc program.c -g

次にgdbを使用します。

$ gdb ./a.out
(gdb) run
<segfault happens here>
(gdb) backtrace
<offending code is shown here>

これ は、GDBを使い始めるための素晴らしいチュートリアルです。

セグメンテーションフォールトが発生する場所は、一般に、その原因となる間違いがコードのどこにあるのかを知る手がかりにすぎません。指定された場所が、必ずしも問題のある場所とは限りません。