我正在使用CLion的内部调试器(Linux上的gdb)调试Linux C程序。该程序分叉了一个子进程,该进程本应在我设置的断点处暂停。但是即使我在gdb面板中输入了set follow-fork-mode child
,调试器也没有停在那里。那么我怎么能用CLion来实现呢?
答案 0 :(得分:2)
我关注了@MarkusParker发布的answer,但我使用set detach-on-fork off
代替int foo( int x )
{
if ( x == 0 )
{
return x;
}
return foo(x-1);
}
来防止与子进程断开连接。这条指令对我有用:
在程序开头设置一个断点(即父程序,而不是子程序)。
在调试器中启动程序。
转到clion中的调试器控制台(带有标签gdb的选项卡),然后输入set auto-load safe-path /
和set follow-fork-mode child
。
继续调试。
答案 1 :(得分:1)
答案 2 :(得分:0)
确保在分叉前设置set follow-fork-mode child
。