En Xcode, GDB le permite cambiar las variables locales durante la depuración (vea cómo cambiar el valor de NSString durante la depuración en XCode? ). ¿LLDB ofrece una funcionalidad similar? Si es así, ¿cómo podemos usarlo?
173
En Xcode, GDB le permite cambiar las variables locales durante la depuración (vea cómo cambiar el valor de NSString durante la depuración en XCode? ). ¿LLDB ofrece una funcionalidad similar? Si es así, ¿cómo podemos usarlo?
Respuestas:
fuente
'expr myLabel.text = @"hello!"
pero me sale unerror: property 'text' not found on object of type 'UILabel *'
... ¿Alguna idea?expr (void)[label setText:@"Foo"]
Deberías hacerlo. La sintaxis de puntos generalmente no funcionará en el depurador. Probablemente, lldb lo interpreta como si quisieras acceder a un miembro de una estructura c, pero no estoy seguro de si esta es la razón por la que no funcionará. La sintaxis de puntos tampoco funcionapo
. en lugar depo label.text
tener que usarpo [label text]
@property
.p
como atajo paraexpr
. Ejemplo:(lldb) p url = @"http://google.com"
e
como atajo paraexpr
. Por cierto,p
es un alias para imprimir que es un alias paraexpr --
(solo evaluar la entrada sin formato, sin banderas)expr -o -- [object]
o, enpo
general, le brinda una salida más útil para los objetos.Lo siguiente me funciona. Estoy usando Xcode 8.
Si desea establecer alguna variable (por ejemplo, un "dict") en cero y luego probar el flujo del código, puede intentar lo siguiente.
Se verá algo así como en la consola.
fuente
Si está utilizando Xcode 10 u 11, coloque el punto de interrupción correctamente después de inicializado a la variable requerida, entonces puede cambiar su variable
po myString = "Hello World"
fácilmente.fuente