У меня система Linux, и я пишу программу, используя Clion IDE, которая использует CMake. У меня есть часть моей программы, где я хотел бы отладить дочерний процесс. Я прочитал несколько тем на этом форуме, но я до сих пор не знаю, как или где я могу включить эту функцию:
gdb отлаживает дочерний процесс после fork (follow-fork настроен дочерний режим)
Как отлаживать дочерний процесс после fork( ) в gdb?
Я только что попытался установить флаг CMAKE_CXX_FLAGS_DEBUG
как set follow-fork-mode child
, но CMake выдает ошибку. Ниже скриншот со всеми флагами, которые используются для компиляции и dbug моей программы. Итак, что и где я должен установить эту функцию.
..::EDIT::..
Я считаю, что это хороший способ. Я думаю, что Ваш совет был полезен, но у меня есть следующая проблема. После использования Ваших инструкций мой код вылетает в строке
pid_t newProcessForClient = fork();
Заявление:
(gdb) set follow-fork-mode child [Новый процесс 31667] предупреждение: автоматическая загрузка файла "/lib32/libthread_db-1.0.so" была отклонена вашим безопасным путем автоматической загрузки, установленным на "$debugdir: $datadir/автозагрузка". предупреждение: невозможно найти libthread_db, соответствующую библиотеке потоков нижнего уровня, отладка потоков будет недоступна. [Переключение на процесс 31667] Продолжение с сигналом SIGABRT.
Программа завершена сигналом SIGABRT, Aborted. Программа больше не существует.
set follow-fork-mode child
— это команда GDB, а не флаг компиляции. Просто введите эту команду в командной строке gdb. - person Tsyvarev   schedule 06.12.2015