ptrace 制御を別のプロセスに移行

ptrace 制御を別のプロセスに移行

リバースエンジニアリングStackexchangeで次の質問をしました。https://reverseengineering.stackexchange.com/questions/15169/transferring-control-of-ptrace-to-another-process 私はptraceの質問がそこに最も適していると思うからです。

人が少なすぎて、Linuxに慣れていなかったからかどうかはわからなかった。とにかくここに尋ねなければならないと思いました。

プロセスAを作りたいです。 AIで2番目のプロセスBを始めたいです。 Aはシステムリソースを監視し続けたいと思います。特定の条件が満たされたら、AはBをptraceしてgdbを起動し、ptrace制御をgdbに送信したいと思います。

可能ですか?そうでない場合、AがBを一時停止し、Bが接続されているgdbを起動してからBを「一時停止」する方法はありますか?

答え1

コメントすることはできませんが、まだ噛まれていません。

最大の質問は、なぜgdbに切り替えてptraceを使い続けないのかということです。

難しい部分は間違いなくコントロールをptraceからgdbに移動することです。具体的には、プロセスを停止したままにしてGDBにそこから接続し、デバッグを再開するようにするには、ptrace接続が失われると、子プロセスは実行を再開します。これは私の知る限り避けられません。

たぶん別の方法があるかもしれません。とにかくGDBに切り替える条件は、Aが監視するシステムリソースによって異なりますか、それともBに限定されていますか?

私の記憶が正しいなら、「これは可能ですか?」と「そうでなければ」オプションが同じものを要求するようです。

関連情報