vscode visual studio para configurar compilar code c++ osx gdb clang waf

c++ - visual - gdb no encuentra los archivos fuente compilados por clang++



visual studio code c++ (1)

Descubrí esto: el problema ocurre cuando construyo proyectos con makefiles jerárquicos. Si se ha creado un subdirectorio desde un directorio padre (en mi archivo make -w -C sub-dir : make -w -C sub-dir ) entonces gdb no puede abrir el archivo fuente. Al cambiar al subdirectorio y hacer una llamada para este directorio, gdb encuentra la fuente. Puede verificar esto buscando en la ruta de compilación en los archivos de objetos generados. Usé strings object-file | grep $HOME strings object-file | grep $HOME .

También me di cuenta de que esto no sucedía con un archivo objeto: este archivo no se ha compilado con CC. Este archivo ha sido compilado con esql. Al final, esql llama CC.

Es por eso que probé esta solución: no llames clang directamente desde make. Llamar clang desde un script de shell.

$ cat ~/bin/mycc /usr/bin/cc "$@" $ export CC=mycc $ make

¡Viva! ¡gdb abre los archivos fuente!

Por cierto: reemplazar make -w -C sub-dir por (cd sub-dir;make -w) es otra solución.

Al compilar mi proyecto con clang ++, aparentemente la ruta a los archivos fuente no está incluida en el código del objeto. Esto significa que gdb no puede encontrar los archivos de origen para mostrar el código. Para instancias específicas, puedo usar el comando de directory de gdb para agregar un directorio, pero mi proyecto tiene muchos directorios fuente y esto se vuelve molesto muy rápidamente.

Cuando cambio mi configuración para usar g ++, gdb simplemente busca todos mis archivos fuente.

Esta funcionalidad funcionaba clang ++ 2.9 en Snow Leopard, pero no funciona con clang ++ 3.1 en Lion. Tengo XCode 4.3.2.

¿Existe una opción de clang que obligue a usar rutas completas para usar en archivos de objetos? ¿Podría pasar algo más con mi configuración?