para objective for app objective-c ios xcode4.3 lldb

objective-c - objective - xcode download 8



lldb no puede imprimir valores variables con "error: la referencia a ''id'' es ambigua" (5)

(Xcode5) Esta no es realmente una respuesta directa a la pregunta original, pero creo que puede ser relevante y odiaría pensar que alguien más pierda horas mientras lo rastreaba. El problema que tuve fue que no se mostraban valores variables en la ventana de depuración.

Comprobé la invocación que realmente se estaba dando al compilador, y encontré que se estaba optimizando con -Os a pesar de que cada proyecto y destino en el espacio de trabajo estaba explícitamente configurado en -O0, y la configuración mencionada en otras respuestas aquí está configurada para Depurar. Después de mucha búsqueda encontré que hay una opción en la sección ''Información'' de cada proyecto llamada "Usar xxx para compilaciones de línea de comandos" donde xxx es Debug / Release o cualquier configuración disponible. Según la descripción de la información sobre herramientas, esta opción solo debería afectar a las compilaciones realizadas a través de la línea de comandos con la herramienta xcodebuild (lo cual es un poco extraño porque esa herramienta es perfectamente capaz de seleccionar qué esquema usar como una opción de línea de comandos). De todos modos, al cambiar esta opción a Debug finalmente conseguí que el IDE le dijera al compilador que quería -O0 y -g. No recuerdo que esto haya sucedido con Xcode4, con el mismo espacio de trabajo.

También debería agregar, que es posible que desee hacer una limpieza antes de cambiar esta configuración. Lo cambié sin limpiarlo, y de repente algunos de mis archivos de encabezado no se encontraron (parecía que los encabezados precompilados no se generaban correctamente). Después de una hora más o menos de apuñalar en la oscuridad, descubrí que si primero establecía la opción mencionada nuevamente en Liberar e hice una limpieza, entonces podía configurarlo en Depurar y construir correctamente.

¿Alguien sabe si el equipo de desarrollo de Xcode realmente lo usa? Tengo la clara impresión de que no.

Desde que actualicé a xcode 4.3 y dejé que cambie mi depurador a lldb, cualquier solicitud para imprimir una variable miembro falla con este mensaje de error:

(lldb) print request error: error: reference to ''id'' is ambiguous note: candidate found by name lookup is ''id'' note: candidate found by name lookup is ''id'' error: 1 errors parsing expression

''yo'' está bien:

(lldb) print self (LoginViewController *) $6 = 0x1cd54d50

Y otras formas de imprimir la variable miembro también fallan:

(lldb) print self.request error: property ''request'' not found on object of type ''LoginViewController *''; did you mean to access ivar ''request''? error: 1 errors parsing expression (lldb) print self->request error: error: reference to ''id'' is ambiguous note: candidate found by name lookup is ''id'' note: candidate found by name lookup is ''id'' error: 1 errors parsing expression

De lo contrario, todo lo demás parece estar funcionando bien. La ventana de variables de Xcode puede recuperar correctamente el valor. Probé una compilación limpia y eliminé ~ / Library / Developer / Xcode / DerivedData /. Google no ha revelado ninguna otra instancia del mismo problema.

Encontré un hilo en el foro de desarrollo de Apple pero no una solución:

https://devforums.apple.com/message/623694

He informado esto a Apple como ID de error # 11029004.


Encontré una solución:

Use ''Editar esquema'' en el menú ''Producto'', seleccione ''Ejecutar'' en la barra izquierda, la pestaña ''Información'' y cambie el Depurador a gdb (esto no se aplica a xcode 5, que ya no tiene gdb).

Aparentemente, Apple pensó que habían corregido este error en xcode 4.3.1, pero todavía sucede. Envié información adicional de depuración que solicitaron, así que espero que se solucione para la próxima versión de xcode. Todavía está fallando en 4.3.2. Consulte https://devforums.apple.com/message/623694 para obtener una actualización de Apple.

ACTUALIZAR

He intentado varios casos con los que estaba teniendo problemas, y parece que todos funcionan bien con lldb en Xcode 4.4.1, por lo que te recomiendo que actualices si tienes este problema.


Prueba con la siguiente expresión

p self.view.bounds.size.width

o usar,

po self.view

p - Imprimir solo se usa para imprimir valores normales / simples mientras que po - Print Object funciona igual que NSLog para imprimir el valor de un objeto


Use Edit scheme en el menú ''Producto'', seleccione ''Ejecutar'' en la barra izquierda, la pestaña ''Información'' y cambie el Depurador a gdb.

Product > Edit Scheme > Run (Esquemas)> Build Configuration tiene tres opciones (Algunos pueden ver solo dos 1, 2) 1. Depurar 2. Versión 3. AdHoc

Simplemente revise si está configurado para Debug si no, entonces haga que Depurar.

Este fue el error que estaba haciendo


Vaya a Product -> Scheme -> New Scheme... y cree un nuevo esquema para su objetivo. Limpie su producto en Product -> Clean y su aplicación debería ejecutarse correctamente.

Hacer esto resolvió mi problema.