tutorial configurar compiler c++ cmake gdb clion

c++ - configurar - configure toolchain clion



Cómo establecer follow-fork-mode como hijo en depurador usando CMake (1)

Tengo el sistema Linux, y el programa de escritura uso Clion IDE que usa CMake . Tengo una parte de mi programa en el que me gustaría depurar el proceso secundario. He leído algunos temas de este foro, pero todavía no sé cómo ni dónde puedo activar esta función:

proceso de depuración de gdb hijo después de la bifurcación (se configuró el hijo de modo follow-fork-mode)

¿Cómo depuro el proceso secundario después de fork () en gdb?

Simplemente CMAKE_CXX_FLAGS_DEBUG configurar el flag CMAKE_CXX_FLAGS_DEBUG como set follow-fork-mode child CMAKE_CXX_FLAGS_DEBUG set follow-fork-mode child pero CMake me dio error. Debajo de la captura de pantalla con todos los indicadores que se utilizan para compilar y dbug mi programa. Entonces, ¿qué y dónde debo establecer esta función?

..::EDITAR::..

Creo que es una buena forma. Creo que tu sugerencia fue útil, pero tengo un próximo problema. Después de usar Tus instrucciones, mi código se cuelga en línea

pid_t newProcessForClient = fork();

La declaración es:

(gdb) establecer el niño follow-fork-mode Niño [Nuevo proceso 31667] advertencia: La carga automática de archivo "/lib32/libthread_db-1.0.so" ha sido rechazada por su `auto-load safe-path ''establecido en" $ debugdir: $ datadir / auto-load ". advertencia: no se puede encontrar libthread_db haciendo coincidir la biblioteca de hilos de inferior, la depuración de subprocesos no estará disponible. [Cambiando al proceso 31667] Continuando con la señal SIGABRT.

Programa terminado con señal SIGABRT, abortado. El programa ya no existe.


La configuración de depuración no tiene nada que ver con cmake. CMAKE_CXX_FLAGS_DEBUG establece los indicadores de depuración para el compilador. Sin embargo, debe indicarle al hijo el depurador de set-fork-mode . Para hacer esto, necesita los siguientes pasos:

  1. Establezca un punto de interrupción al comienzo de su programa (es decir, el programa principal, no el programa secundario)

  2. Inicie el programa en el depurador.

  3. Vaya a la consola del depurador (pestaña con la etiqueta gdb ) in clion e introduzca set child follow-fork-mode y configure auto-load safe-path /
  4. Continuar depurando

El comando set auto-load safe-path / se supone que conmuta las restricciones de carga automática de acuerdo con la documentación de gdb.