web-dev-qa-db-ja.com

CLionを使用してフォークされた子プロセスをデバッグする方法

CLionの内部デバッガー(Linuxではgdb)を使用してLinuxCプログラムをデバッグしていました。プログラムは、私が設定したブレークポイントで中断されるはずの子プロセスをフォークしました。しかし、gdbパネル内にset follow-fork-mode childと入力しても、デバッガーはそこで停止しませんでした。では、どうすればCLionでそれを実現できますか?

17
DYS

私は answer @MarkusParkerによって投稿されましたが、set auto-load safe-path /の代わりに set detach-on-fork off を使用して子プロセスからの切断を防ぎました。この指示は私のために働きます:

  1. プログラムの先頭にブレークポイントを設定します(つまり、子プログラムではなく親プログラム)。

  2. デバッガーでプログラムを起動します。

  3. Clionのデバッガコンソール(gdbというラベルの付いたタブ)に移動し、set follow-fork-mode childset detach-on-fork offを入力します。

  4. デバッグを続行します。

6
annstriganova

デバッガーの[GDB]タブを使用します。

set follow-fork-mode childを入力し、detach-on-forkをオフに設定します enter image description here

1
user1095332

フォークの前に必ずset follow-fork-mode childを設定してください。

0
Wayne Booth