Cómo mejorar la visualización de variables que son objects en el depurador xcode 4.5 (noob)

Estoy usando Xcode 4.5 en Mac con el simulador de iOS para escribir aplicaciones de iPhone. Cuando presiono un punto de interrupción en el depurador, uso el "Auto" para ver las variables. El problema es que los objects están inicialmente todos doblados, y tengo que expandir cada uno para ver su valor. Está bien, pero es tedioso y difícil de leer. ¿Hay alguna manera de PERSONALIZAR la forma en que se presentan los datos en el depurador?

Miré el tutorial de LLDB y miré "cadenas de resumen personalizadas" en la publicación de Quinn Taylor, pero no lo entiendo. Él debe haber usado una versión anterior de xcode.

Básicamente, tengo un object como

class Vec3 {público: float x, y, z; };

y en la window de debugging veo

pos (Vec3) 

y lo que preferiría ver es

  pos = (Vec3) (x=45.2, y=10.7, z=2.0) 

sin tener que expandir la variable. ¿Alguien sabe cómo puedo hacer eso?

Si Vec3 es su class (o algo que pueda subclass), anule su description . Eso te permite formatear lo que aparece cuando dices po pos en la console.

Para ser más elegante, consulte esta página:

http://lldb.llvm.org/varformats.html

Puedes decir

 type summary add --summary-string 

seguido de una descripción de cadena de cómo quiere que se muestre este tipo de variable.

Si realmente quieres entrar en el arenoso asunto, puedes escribir tu propio formateador; buena discusión en los dos videos de WWDC 2012 sobre debugging y LLDB. Pero tienes que escribir un script de Python para hacer eso, así que he dado más de una solución "noob".

Pude lograr que esto funcione con xcode 4.5.2. Para resumir, estos son los pasos.

  1. abra o cree ~ / .lldbinit usando el editor de text y agregue esta línea

     type summary add Vec3 --summary-string "x=${var.x}, y=${var.y}, z=${var.z}" 
  2. reiniciar xcode Ahora cuando llegue a un punto de interrupción, el Vec3 se mostrará como,

     pos (Vec3) x=1, y=3.125, z=9.5 

Puede hacer muchas otras cosas en .lldbinit como se describe en http://lldb.llvm.org/varformats.html

Por ejemplo

 type summary add Vec3 --inline-children --omit-names 

generará automáticamente una cadena de resumen y

 type summary add --inline-children -x "Vec[:alnum:]*" 

generará automáticamente cadenas de resumen para TODOS los types que comienzan con "Vec".