Dans Xcode, GDB vous permet de changer les variables locales pendant le débogage (voir comment changer la valeur de NSString pendant le débogage dans XCode? ). LLDB offre-t-il une fonctionnalité similaire? Si oui, comment pouvons-nous l'utiliser?
173
Réponses:
la source
'expr myLabel.text = @"hello!"
mais j'obtiens unerror: property 'text' not found on object of type 'UILabel *'
... Des pensées?expr (void)[label setText:@"Foo"]
devrait le faire. Dot-Syntax ne fonctionnera généralement pas dans le débogueur. lldb l'interprète probablement comme vous vouliez accéder à un membre d'un c-struct, mais je ne suis pas sûr que ce soit la raison pour laquelle cela ne fonctionnera pas. Dot-Syntax ne fonctionne pas nonpo
plus. au lieu depo label.text
vous devez utiliserpo [label text]
@property
.p
comme raccourci pourexpr
. Exemple:(lldb) p url = @"http://google.com"
e
comme raccourci pourexpr
. BTW,p
est un alias pour print qui est un alias pourexpr --
(juste évaluer l'entrée brute, pas de drapeaux)expr -o -- [object]
oupo
qui vous donne généralement une sortie plus utile pour les objets.Les trucs suivants fonctionnent pour moi. J'utilise Xcode 8.
Si vous souhaitez définir une variable (par exemple un "dict") sur nil, puis tester le flux de code, vous pouvez essayer ce qui suit.
Cela ressemblera à quelque chose comme dans la console.
la source
Si vous utilisez Xcode 10 ou 11, placez correctement le point d'arrêt après avoir initialisé la variable requise, vous pouvez modifier votre variable en utilisant
po myString = "Hello World"
facilement.la source