2009-08-23 6 views
0

実行時エラーを修正するためにどのような戦略を使用しているのでしょうか?あなたがいくつかのヒントを共有することができれば本当に感謝します!ランタイムエラーを修正する戦略

一部のメモリが誤ってアクセスされるため、ランタイムエラーが発生し、ダンプされたコアに格納されたアドレスは、メモリがどこにあるか示している。ここで

は(おそらくGDBの助けを借りて)私の思考の一部ですか?

アクセスされているアドレス/メモリが実行時エラーを引き起こす場合は、その変数を使用している変数(変数のメモリの先頭または中央にある可能性があります)を見つけることができますか?そして、そのメモリブロックの上下にメモリを置く近傍の変数を見つけますか?

これがすべて可能であれば、バグ修正に役立つでしょうか?

ありがとうございました!

答えて

1

gdbの--argsオプションを使用して、プログラムをコマンドラインから起動します。

例:

gdb --args foocode --with-super-awesome-option 
run 

これは、プログラムのfoocodeをロードし、それに--with-超素晴らしい-オプションパラメータを渡します。プログラムが失敗するとすぐにgdbセッションが使えるようになります。これはあなたのクラッシュにつながるイベント(関数呼び出し)のチェーンが表示されます

bt 

は、そこからバックトレースコマンドを使用することができます。