如何使用CLion调试分叉的子进程

时间:2016-03-25 13:38:29

标签: c linux clion

我正在使用CLion的内部调试器(Linux上的gdb)调试Linux C程序。该程序分叉了一个子进程,该进程本应在我设置的断点处暂停。但是即使我在gdb面板中输入了set follow-fork-mode child,调试器也没有停在那里。那么我怎么能用CLion来实现呢?

3 个答案:

答案 0 :(得分:2)

我关注了@MarkusParker发布的answer,但我使用set detach-on-fork off代替int foo( int x ) { if ( x == 0 ) { return x; } return foo(x-1); } 来防止与子进程断开连接。这条指令对我有用:

  1. 在程序开头设置一个断点(即父程序,而不是子程序)。

  2. 在调试器中启动程序。

  3. 转到clion中的调试器控制台(带有标签gdb的选项卡),然后输入set auto-load safe-path /set follow-fork-mode child

  4. 继续调试。

答案 1 :(得分:1)

使用调试器的“ GDB”标签:

输入设置“ fork-fork-mode”子项并将“ on-fork-fork”设置为off enter image description here

答案 2 :(得分:0)

确保在分叉前设置set follow-fork-mode child