10 votos

Misteriosos cuelgues de GDB después de limpiar y construir

OS: Mac OSX 10.14.6
GDB version: 8.2.50.20190226-git
g++ version: 11.0.0 (clang-1100.0.33.16)

El problema: Cada vez que limpio y reconstruyo mi sencilla aplicación "Hello World" en c++ (usando g++) y luego intento depurarla usando gdb, éste se cuelga indefinidamente. Pero lo más extraño viene a continuación: si voy al monitor de actividad y mato el proceso de gdb que se está ejecutando, y luego vuelvo a ejecutar gdb (matándolo si se vuelve a colgar), finalmente gdb funcionará y podré recorrer mi código. He seguido los pasos descritos aquí para firmar correctamente el código de gdb, así que ese no parece ser el problema. Expertos en Mac, ¿alguna idea de por qué reconstruir un ejecutable C++ impediría a GDB ser capaz de depurarlo hasta que GDB haya sido ejecutado y matado unas cuantas veces?

Como referencia, aquí están los comandos de terminal en bruto que genera el Makefile:

$ rm -f -r ./build/Debug
$ rm -rf ./dist/Debug
$ mkdir -p ./build/Debug/GNU-MacOSX
$ mkdir -p ./dist/Debug/GNU-MacOSX
$ g++    -c -g -MMD -MP -MF "build/Debug/GNU-MacOSX/welcome.o.d" -o build/Debug/GNU-MacOSX/welcome.o welcome.cc
$ g++     -o dist/Debug/GNU-MacOSX/welcome_1 build/Debug/GNU-MacOSX/welcome.o

Y esto es lo que ocurre cuando ejecuto gdb:

Starting program: /Users/matthewboyle/NetBeansProjects/Welcome_1/dist/Debug/GNU-MacOSX/welcome_1 
[New Thread 0xf03 of process 33622]
[New Thread 0xd03 of process 33622]
(It just hangs after this point, I have to kill the process)

1voto

awdeorio Puntos 11

Me encontré con el mismo problema y pude resolverlo compilando con GNU g++ e incluyendo información de depuración GDB de nivel 3.

$ g++-10 -ggdb3 FILE.cpp

Apéndice: añadiendo mis versiones de la cadena de herramientas para la posteridad.

$ uname -a
Darwin manco.local 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64 i386 MacBookPro15,2 Darwin

$ g++-10 --version
g++-10 (Homebrew GCC 10.2.0) 10.2.0
...

$ gdb --version
GNU gdb (GDB) 10.1
...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X