2009-07-09 13 views
3

Ctrl + C(または別のプロセスから送信された同等の信号)を使用せずに下位プロセスを停止する方法はありますか?Windowsプラットフォームを使用していて、別のプロセスのGDBを管理しています。ブレークポイントなしでフリーランニングしているときに私のプログラムの実行を中断する良い方法はないということです。明確にするためGDBの下位プロセスをシグナルなしで停止しますか?

EDIT:

ここに関与して2つのプロセスがあります。 GDBの親プロセスAがあります。 GDBはプロセスを管理していますが、それはリモートホスト上にあり、プロセスCと呼びます。

GDBに「実行」を指示すると、リモートホスト上のプロセスCが起動し、ブレークポイントがプロセスCがエラーまたは致命的なシグナルを検出した場合、またはGDB自身が割り込みシグナルを受信した場合インタラクティブに作業している場合は、GDBコマンドコンソールでCTRL + Cを押すだけで、GDBはSIGINT(何らかの形で)を解釈し、GDBを起動してプロセスCを停止させます。実際にはプロセスAでGDBを管理していますシェルでインタラクティブに)Ctrlキーを押したままでもCキーを押すことはできません.WindowsにはUNIXのように "Signals"のネイティブな概念はないので、プロセスCの待機をブロックしているときにGDBを中断する方法を知ることはできませんブレークポイントに割り込みまたはヒットします。

+0

これを少し詳しく説明できますか? 3つのプロセスが関与していますか?誰が誰の親ですか? – drudru

答えて

1

リモートコントロールプロトコルを見てみましたか?例えば、EMACSMIをGDBを制御するために使用していますので、そのようなctrl-Cメカニズムを提供しているかどうか、どのように実装するのかを確認してください。

編集:これは実行を中断する-exec-interruptのようです。

+0

この回答にスポットがあります。 – sehe

関連する問題