2016-09-29 6 views
1

Warum manchmal, wenn ich so etwas wie zu tun versuchen:LLDB Ausgabefehler

po trip.id 

und ich bekomme diese

error: <EXPR>:1:11: error: use of undeclared type '$__lldb_context' 
extension $__lldb_context {        
      ^~~~~~~~~~~~~~~ 
<EXPR>:16:5: error: use of unresolved identifier '$__lldb_injected_self' 
    $__lldb_injected_self.$__lldb_wrapped_expr_79(  
    ^~~~~~~~~~~~~~~~~~~~~ 

? Irgendein Weg, um das irgendwie zu beheben?

Antwort

2

Damit der Ausdruck so ausgeführt wird, als ob er in den aktuell ausgewählten Rahmen injiziert würde, müssen wir einen Kontext (eine Art von Klassenerweiterung) mit einem geeigneten Selbstparameter konstruieren und den Code in Ihrem Ausdruck auswerten in diesem Zusammenhang. Anscheinend ist der Kontext, in dem Sie versuchen, "trip.id" zu drucken, einer, den der Debugger nicht rekonstruieren kann. Wenn Sie einen Fehler mit http://bugreporter.apple.com einreichen können, um dies zu melden, können wir herausfinden, wie Sie dies unterstützen können.

Wenn Sie nicht Xcode 8.0 verwenden, könnten Sie versuchen, dass eine Reihe von Fehlern dieser Art behoben wurden.

lldb hat einen weiteren Befehl, "frame variable", der schnellen Zugriff auf lokale Variablen bietet. Es kann keine Funktionsaufrufe und dergleichen ausführen, aber da es weniger ambitioniert ist, ist es manchmal robuster. Sie könnten versuchen, etwas wie:

(lldb) frame variable -O trip.id