我正在用CLion的内部调试器(Linux上的gdb)调试一个Linux C程序。该程序派生了一个子进程,该进程应该在我设置的断点处挂起。但是,即使我在gdb面板中输入了set follow-fork-mode child,调试器也没有在那里停止。那么,我该如何用CLion实现这一点呢?
set follow-fork-mode child
yfjy0ee71#
我跟随了@MarkusParker发布的answer,但是我使用了set detach-on-fork off而不是set auto-load safe-path /来防止与子进程断开连接。1.在程序(即父程序,而不是子程序)的开头设置断点。1.在调试工具中启动程式。1.转到clion中的调试器控制台(标签为gdb的选项卡),然后输入set follow-fork-mode child和set detach-on-fork off。1.继续两柴。
set detach-on-fork off
set auto-load safe-path /
mwg9r5ms2#
使用调试器的GDB选项卡并输入:
set detach-on-fork off set follow-fork-mode child
9q78igpj3#
set detach-on-fork off会在框架中添加一个线程,但是你仍然不能控制子进程。并且Clion“将其中一个下级进程的退出视为调试会话的结束,即使其他进程仍在运行”。我认为vscode也有同样的问题。
qnyhuwrf4#
确保在fork之前设置set follow-fork-mode child。
4条答案
按热度按时间yfjy0ee71#
我跟随了@MarkusParker发布的answer,但是我使用了
set detach-on-fork off
而不是set auto-load safe-path /
来防止与子进程断开连接。1.在程序(即父程序,而不是子程序)的开头设置断点。
1.在调试工具中启动程式。
1.转到clion中的调试器控制台(标签为gdb的选项卡),然后输入
set follow-fork-mode child
和set detach-on-fork off
。1.继续两柴。
mwg9r5ms2#
使用调试器的GDB选项卡并输入:
9q78igpj3#
set detach-on-fork off
会在框架中添加一个线程,但是你仍然不能控制子进程。并且Clion“将其中一个下级进程的退出视为调试会话的结束,即使其他进程仍在运行”。我认为vscode也有同样的问题。
qnyhuwrf4#
确保在fork之前设置
set follow-fork-mode child
。