gdb で低レベルの C プログラムをデバッグしようとしています。問題のプログラムは、ラッパーとして機能し、別のプロセスを起動し、そのメモリ使用を監視/干渉することを意図しています。
プログラムを gdb にロードすると、最初は (理想的ではないにしても) すべてが正常に見えます。新しいプロセス フォークが表示されますが、ハングします。それ自体は、それほど奇妙ではありません。コードのどこかでデッドロックまたは無限ループが発生している可能性があります。
しかし、gdb 内でプロセスを中断して強制終了し、同じ gdb セッション内で再度実行すると、すべてが完全に正常に動作します。実行には約 0.5 秒かかり、正確に動作します。
私の質問は次のとおりです。プログラムの実行間でgdbが保持しているのは何ですか? 1 回目と 2 回目の実行で何が変わるでしょうか。