テストケースで致命的なエラーを生成するプログラムがあり、ログとスタックトレースを読み込み、読み取り操作があることがわかりましたヌルポインタのとき。gdbで実行したときに致命的なエラーが消えた
しかし、私はそれにgdbを接続し、疑わしいコードの周りにブレークポイントを設定しようとすると、nullポインタだけが観測できません!このプログラムはエラーなくスムーズに動作します。
これはシングルプロセスのシングルスレッドプログラムであり、以前はこのようなことは経験していませんでした。誰か私にいくつかのコメントを与えることができますか?ありがとう。
追加:致命的なトリガコードの前にpause()syscallも呼び出そうとしましたが、致命的なポイントの前にプログラムをスリープ状態にしてからgdbをon-the-flyでアタッチすることが予想されます。
てみデバッグを? –
ahh、Heisenbergの不確実性原理、プログラミングに適用される –
悪名高い[heisenbug](http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug) –