CLionの内部デバッガー(Linuxではgdb)を使用してLinuxCプログラムをデバッグしていました。プログラムは、私が設定したブレークポイントで中断されるはずの子プロセスをフォークしました。しかし、gdbパネル内にset follow-fork-mode child
と入力しても、デバッガーはそこで停止しませんでした。では、どうすればCLionでそれを実現できますか?
私は answer @MarkusParkerによって投稿されましたが、set auto-load safe-path /
の代わりに set detach-on-fork off
を使用して子プロセスからの切断を防ぎました。この指示は私のために働きます:
プログラムの先頭にブレークポイントを設定します(つまり、子プログラムではなく親プログラム)。
デバッガーでプログラムを起動します。
Clionのデバッガコンソール(gdbというラベルの付いたタブ)に移動し、set follow-fork-mode child
とset detach-on-fork off
を入力します。
デバッグを続行します。
フォークの前に必ずset follow-fork-mode child
を設定してください。