2017-03-08 7 views
0

私は再びこの奇妙なエラーを取得していますし、次のように変数iwの再gdbが印刷時のsegfaultから守らないようにするには?

宣言がある:私は言及する必要があります

 integer iw   (line 28) 

もう一つは、私はprint文にその実行上記の数行を持っているということです適切:

 write(*,*) ' IW=', iw  (line 89) 

しかし、その後の数行後に、私が取得:

(gdb) p iw 
Segmentation fault (core dumped) 

タイトルに記載されている質問は、次の2つの部分で構成されています。(a)ここでの印刷のsegfaultからgdbを防ぐにはどうすればよいのですか?(b)segfaultから何を学べますか?

答えて

2

gdbがクラッシュすると、常にgdbのバグです。私はこれが起こるとき、あなたはいくつかのオプションがあることを恐れています。あなたはgdbのどのバージョンを使用しているのかは言わないので、おそらくアップグレードが役に立ちます。

それ以外の場合は、最小限の例を考えてバグを報告することをおすすめします。素晴らしいバグレポートには、gdbのスタックトレースも含まれています。

$ gdb --args gdb your-program 

次に、外側のgdbで内側のgdbを実行してください。あなたのプログラムをデバッグしてください。内側のgdbがクラッシュした場合は、btを使用してスタックトレースを取得し、gdbのバグレポートに登録できます。

gdbのデバッグシンボルがある場合は、これは実際にうまくいきます。 gdbを修正しようとするならば、自分で構築するのが一番良いでしょう。

+0

私はArcherブランチの代わりに標準のgdbを使用してこの問題を回避しました。私の問題の根本は、配列を使って私のソースのいくつかの違反行にあることを知りました。これらの行にコメントすることで、私の問題は解決しました。 – wander95

関連する問題