Tengo un proyecto para Mac OS X 10.5 que estoy usando 10.6 usando Xcode 3.2. Cuando uso GCC 4.2 para la construcción de depuración y llego a un punto de interrupción, el depurador de Xcode muestra la información de la variable local normalmente. Si elijo LLVM GCC 4.2 o Clang LLVM, cuando llego al punto de interrupción, los símbolos locales no están disponibles, y GDB dice Sin símbolo 'self' en el contexto actual si intento imprimir auto o cualquier otro símbolo local. En todos los casos Generar información de depuración se establece la opción. La configuración de depuración está configurada en $(NATIVE_ARCH)
y 10.5 SDK, Crear arquitectura activa solo se establece la opción. Cuando se inicia GDB, puedo ver que se está configurando como x86_64-apple-darwin. Debo estar perdiendo algo obvio. ¿Cómo hago que GDB muestre símbolos locales cuando se usa un compilador LLVM?Xcode 3.2 + LLVM = sin símbolos locales al depurar
Respuesta
Para los que no estén familiarizados, un poco más de detalle para la respuesta de cdespinosa, que funcionó para mí y que voté a favor.
- En el menú de Xcode, seleccione Proyecto> Editar configuración del proyecto ...
- Seleccione la pestaña Generar
- En la búsqueda del tipo de caja "nivel de optimización", seleccione ese campo, y seleccione Ninguno.
- Siguiente búsqueda de "Formato de información de depuración", elija ese campo y seleccione "DWARF" o "DWARF con dSYM".
Hubiera puesto esto en los comentarios a su publicación si tuviera los privilegios. ;)
Esto me costó un tiempo serio, y francamente fue un poco descuidado por parte de Apple, pero en general no me puedo quejar.
GDB de FSF solo agregó soporte para código JIT muy recently.
No sé si el GDB suministrado por Apple tiene soporte para eso (¿obtiene rastreos de pila razonables?). Si lo hace, este soporte es (aparentemente) incompleto.
Esto puede ayudar. Intente desactivar "Optimización del tiempo de enlace" en las opciones de compilación del proyecto. Eso solucionó un problema que tenía con los símbolos de depuración faltantes.
De hecho, eso solucionó un montón de problemas extraños que tenía con Clang. Yo diría que esa característica es demasiado sangrienta para usar todavía.
Asegúrate de que estás construyendo con símbolos enanos y sin optimización. llvm es un nuevo back-end, y no todo su codegen optimizado está conectado para depurar la generación de símbolos.
Estaba teniendo este problema y lo solucioné marcando al lado del elemento del menú: "Proyecto> Establecer configuración de compilación activa> Depurar". Anteriormente, se seleccionaba la opción "Liberar". Los lugareños comenzaron a aparecer en el depurador de mi proyecto a partir de ese momento.
- 1. Usando LLVM Clang 2.6 con Xcode 3.2
- 2. XCode LLVM + GCC 4.2 - Generar símbolos de depuración
- 3. Xcode 4 Strip Todos los símbolos de error al Archivar
- 4. Xcode 3.2 desconectado documentación?
- 5. Falta "buscar opciones" en Xcode 3.2
- 6. SenTestCase en Xcode 3.2 y XCBuildLogCommandInvocationSection errores
- 7. Desarrollo de PyObjC con Xcode 3.2
- 8. Xcode 3.2 ¿Acciones/salidas de clase perdidas?
- 9. Plantillas XCode 3.2 Ruby y Python
- 10. Añadir un compilador personalizado para XCode 3.2
- 11. Xcode 3.2.1 GCC CLANG y LLVM desmitificación
- 12. Xcode, no hay símbolos de depuración para cierta subclase
- 13. Cómo deshabilitar la carga de símbolos al depurar un programa de Visual C++?
- 14. Ocultación de símbolos en bibliotecas estáticas compiladas con Xcode/gcc
- 15. ¿Usar GDB sin símbolos de depuración en x86?
- 16. ¿Cómo elimino los símbolos locales del módulo del kernel de Linux sin romperlo?
- 17. ¿cómo busco símbolos en xcode 4?
- 18. Xcode no puede resolver los símbolos zlib
- 19. Edificio para 10.5 en Xcode 3.2 (en Snow Leopard) error
- 20. Cómo depurar una aplicación Delphi iOS FireMonkey en Xcode?
- 21. Depuración de Xcode 3.2: ¿Ver qué está en una cadena?
- 22. ¿Cómo depurar un paquete en XCode?
- 23. Señales al depurar
- 24. "No se cargaron símbolos para el documento actual" al depurar JavaScript en Visual Studio
- 25. ¿Se puede ejecutar XCode 3.2 en 10.5 Leopard?
- 26. ¿Cómo agregar Quartz Core Framework en el nuevo Xcode 3.2?
- 27. Xcode 3.2 buscar y reemplazar en el texto seleccionado
- 28. ¿Cómo obtener iPhone SDK 2.2.1 para Xcode 3.2?
- 29. ¿Cómo puedo ver la representación intermedia llvm en Xcode
- 30. Pasar por encima del método sin símbolos - ¿Cómo entrar?
¿Qué te hace pensar que esto tiene algo que ver con JIT, o que Apple enviaría un gdb que no funciona del todo con el compilador que escribieron? – user57368
La pila se ve correcta, muestra todas mis funciones. Son vars locales que faltan. – glebd
Pero llvm puede generar código nativo, no bytecode. – osgx