-5

彼ら!私は c++ ソースを書きました。しかし、私はどこかにエラーがあることを発見しました。

「セグメンテーション違反: 11」

しかし、エラーの詳細とどこを修正すればよいかわかりません。

一部のコマンドでエラーの場所を表示できることをご存知ですか。

ありがとう

4

3 に答える 3

4

生成されたコードでgccは、通常、gdbベースのツールまたはgdbそれ自体を使用します。とにかく走れ

gdb <program>

...そして内部gdb

run <arguments>

...そして、クラッシュが発生した場所で停止します。

オプションを使用して、デバッグ情報を使用してコンパイルするプログラムの場所に関する適切な情報を取得し-gます。混乱を避けるために、最適化なしで、つまりオプションなしでコンパイルすることをお勧めし-O...ます。ただし、一部のエラーは、最適化がオンになっている場合にのみトリガーされます (注: これらは通常、オプティマイザーではなくコード内のエラーです)。

于 2012-10-05T19:09:33.383 に答える
1

GNU デバッガー (GDB) を使用します。ブレーク ポイントを追加し、コードを実行します。ここにあなたが物を見つけることができる場所があります。http://www.unknownroad.com/rtfm/gdbtut/gdbtoc.html

于 2012-10-05T19:04:53.100 に答える
0

プログラムが無効な (存在しない) アドレスにアクセスしようとしているようです。また、位置合わせされていないデータにアクセスしようとしている可能性もあります。整列されていない構造にアクセスしようとしたときに、これを見たことがあります。

セグメンテーション違反について読む: http://en.wikipedia.org/wiki/Segmentation_fault

于 2012-10-05T19:09:07.083 に答える