【发布时间】:2016-03-11 08:43:12
【问题描述】:
我有Linux系统,我使用Clion IDE编写程序,它使用CMake。我的程序中有一部分我想调试子进程 我从这个论坛上阅读了一些主题,但我仍然不知道如何或在哪里可以打开此功能:
gdb debugging child process after fork (follow-fork-mode child configured)
How do I debug the child process after fork() in gdb?
我刚刚尝试将标志 CMAKE_CXX_FLAGS_DEBUG 设置为 set follow-fork-mode child 但 CMake 给我错误。
下面的屏幕截图包含用于编译和调试我的程序的所有标志。
那么我必须在哪里设置这个函数。
..::EDIT::..
我相信这是个好方法。我认为您的提示很有用,但我还有一些下一个问题。使用您的说明后,我的代码在线崩溃
pid_t newProcessForClient = fork();
声明是:
(gdb) set follow-fork-mode child [新进程 31667] 警告:文件 “/lib32/libthread_db-1.0.so”自动加载已被您拒绝 `auto-load safe-path' 设置为 "$debugdir:$datadir/auto-load"。警告: 找不到匹配劣质线程库的libthread_db,线程 调试将不可用。 【切换到进程31667】 继续使用信号 SIGABRT。
程序以信号 SIGABRT 终止,已中止。该程序不再 存在。
【问题讨论】:
-
set follow-fork-mode child是 GDB 命令,而不是编译标志。只需在 gdb 命令行中输入此命令即可。