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

DYS*_*DYS 17 c linux clion

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

小智 6

使用调试器的 GDB 选项卡:

输入 set follow-fork-mode child 并设置 detach-on-fork off 在此处输入图片说明


ann*_*ova 5

我跟着答案张贴@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. 继续调试。

  • 由于这是一个流行的答案,为了避免每次都输入这些命令,您可以创建此文件“~/.gdbinit”并在其中添加这些命令(每个命令都在单独的行中)。这可能仅在您使用系统的 gdb 时才会生效。 (3认同)