1

現在、GDBには、フォーク後の子プロセスに続く問題があります。私がオンラインで見た回避策は、次の手順でパッチを使用することです:-

call 0x8048740 <fork@plt>

次のように :-

gdb$ set *(0x08048d1f+1)=0x90909090
gdb$ set *(0x08048d1f)=0x9090c033

これを行うと、命令が次のように設定されます:-

xor    eax,eax
nop    
nop    
nop

その結果、子として実行されるはずのコードが親によって実行され、デバッグできなくなります。ただし、プロセスをデバッグする必要があるたびに2つのステップのステートメントを入力するのは、面倒です。プロセスにアタッチするたびにそれらの命令にパッチを適用するようにgdbに指示する方法はありますか?ある種の自動化、それが制限されているかもしれませんか?

4

1 に答える 1

2

gdb拡張機能を使用してGDBコマンドリストを拡張する方法はいくつかあります。Pythonスクリプトのサポートは、7.1リリース以降のGDBの最新の開発です。ただし、要件を見ると、多くのスクリプトは必要ありません。最も簡単なdefineコマンドを使用できます。

私はしばらく前に同様の質問に答えました、あなたは同じアプローチを使うことができます。

于 2012-06-15T06:33:51.217 に答える