2012-04-18 7 views
5

Estoy usando el dialecto de lenguaje C++ 11 de Xcode 4.3.1 junto con libC++ como biblioteca estándar. El soporte de idiomas en esta combinación es sorprendente, pero la depuración es una tortura. Ni el "Formato de resumen" de Xcode ni las características de formato de resumen de lldb muestran ninguno de los tipos estándar (std :: string, std :: vector, etc.) con una impresión bonita. Escribir una bonita impresora para estos tipos es altamente no trivial debido a su complejidad. (Por ejemplo, std :: string es notablemente complejo en libC++.)¿Cómo puedo obtener visualizaciones de variables sensibles cuando uso libC++ en Xcode 4.3.1?

¿Cómo es que otros desarrolladores obtienen decentes pantallas variables para los tipos STL en esta situación? ¿O nadie más está utilizando libC++ con Xcode/lldb todavía?

Respuesta

0

Esta característica funciona correctamente en Xcode 4.4. La mejor solución para usuarios de Xcode 4.3 es simplemente actualizar Xcode.

4

W ell hay soporte en el repositorio lldb. Esto es lo que hice:

svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb 

(que tiene la revisión 160855) En el shell LLDB de Xcode que se puede hacer:

command script import /Users/arne/oss/lldb/examples/synthetic/libcxx.py 

Después de que los formatos LLDB std :: vector, std :: map, std :: string y std :: map más bonitos:

(lldb) p rv 
(std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >) $3 = size=2 { 
    (unsigned long) [0] = 503 
    (unsigned long) [1] = 503 
} 

He probado esto con Xcode 4.4. Debe funcionar de manera similar con Xcode 4.3

Puede poner el comando en su archivo init .lldbinit. Incluso Xcode mostrará las estructuras muy formateadas.

+0

En Xcode 4.3.3, cuando intento lo anterior, en el segundo paso ("importación de script de comando ...") el shell lldb responde con un mensaje de error que concluye: "ImportError: Ningún módulo llamado formateadores.Logger. " No sé lldb lo suficientemente bien como para interpretar eso. ¿Podría ser un problema con 4.3? – OldPeculier

+0

Creo que para 4.3.3 necesita una versión anterior del script. Pero no sé qué reversión en lldb svn funciona con Xcode 4.3. – plaisthos

+0

Vocinglera, aunque esta no es la "mejor" respuesta, ya que es muy útil para los tipos personalizados en general. –

Cuestiones relacionadas