In Xcode können Sie mit GDB lokale Variablen während des Debuggens ändern (siehe Ändern des NSString-Werts während des Debuggens in XCode? ). Bietet LLDB eine ähnliche Funktionalität? Wenn ja, wie können wir es verwenden?
173
In Xcode können Sie mit GDB lokale Variablen während des Debuggens ändern (siehe Ändern des NSString-Werts während des Debuggens in XCode? ). Bietet LLDB eine ähnliche Funktionalität? Wenn ja, wie können wir es verwenden?
Antworten:
quelle
'expr myLabel.text = @"hello!"
aber ich bekomme eineerror: property 'text' not found on object of type 'UILabel *'
... Irgendwelche Gedanken?expr (void)[label setText:@"Foo"]
Sollte es tun. Die Punktsyntax funktioniert normalerweise nicht im Debugger. lldb interpretiert es wahrscheinlich so, als wollten Sie auf ein Mitglied einer c-Struktur zugreifen, aber ich bin mir nicht sicher, ob dies der Grund ist, warum es nicht funktioniert. Die Punktsyntax funktioniert auch nichtpo
. stattdessen müssenpo label.text
Sie verwendenpo [label text]
@property
.p
als Verknüpfung für verwendenexpr
. Beispiel:(lldb) p url = @"http://google.com"
e
als Verknüpfung für verwendenexpr
. Übrigens,p
ist ein Alias für den Druck, der ein Alias fürexpr --
(nur die Roheingabe auswerten, keine Flags) istexpr -o -- [object]
oder impo
Allgemeinen eine nützlichere Ausgabe für Objekte bietet.Das folgende Zeug funktioniert für mich. Ich benutze Xcode 8.
Wenn Sie eine Variable (z. B. ein "Diktat") auf Null setzen und dann den Codefluss testen möchten, können Sie Folgendes versuchen.
Es wird ungefähr so aussehen wie in der Konsole.
quelle
Wenn Sie Xcode 10 oder 11 verwenden, setzen Sie den Haltepunkt nach der Initialisierung auf die erforderliche Variable richtig. Dann können Sie Ihre Variable mit
po myString = "Hello World"
einfach ändern .quelle