2013-08-14 12 views
6

Ich verwende lldb von der Kommandozeile, um ein einfaches C-Programm zu debuggen.LLDB Registerkarte Vervollständigung für Symbolnamen

Auf meiner Maschine bei der Arbeit konnte ich Tab-Vervollständigung für Symbolnamen verwenden. Wenn ich beispielsweise "b ma" und dann Tab eintippe, wird Tab-Complete auf "b main" gesetzt. Das Gleiche gilt für andere Funktionen.

Allerdings kann ich diese Funktion nicht auf meinem Laptop arbeiten, wo eine tatsächliche Registerkarte (ASCII-Wert 9) nach dem Cursor eingefügt wird. Beide Maschinen laufen 10.8.4 und haben den neuesten Xcode.

Irgendwelche Ideen?

Antwort

4

Ich denke, Sie führen gdb auf einem Ihrer beiden Systeme.

lldb kann Tab-Vervollständigung durchführen - es kann ausgefeiltere Tab-Vervollständigungen als gdb ausführen - aber Sie müssen die kanonische Form der lldb-Befehle verwenden, damit es funktioniert. Der von Ihnen verwendete Befehl b ist ein Alias ​​(ein Alias ​​für reguläre Ausdrücke - eine Liste regulärer Ausdrücke, die versuchen, Ihren Breakpoint-Befehl zu parsen und das Richtige zu tun), was der ldb-Registerkarte-Vervollständigungs-Engine nicht genügend Informationen über den Kontext gibt etwas.

Stattdessen, wenn Sie

(lldb) br s -n ma<TAB> 

zu tun wäre, würde es automatisch vervollständigt. Dies ist natürlich die Kurzform von breakpoint set --name.

Die Klugheit von LLDB kommt in zu bewirken, wenn Sie, dass LLDB können Tab vollständige viele verschiedene Argumente erkennen - breakpoint set --file Datei Tab wird abgeschlossen „Datei“ als Dateinamen. breakpoint set --selector wird Selektornamen automatisch vervollständigen. breakpoint set --shlib (der den Haltepunkt so begrenzt, dass er nur in einem bestimmten dylib/framework/binary gesetzt wird) wird mit der Liste der dylibs/frameworks/binaries automatisch vervollständigt.

Zu einem bestimmten Zeitpunkt in der Zukunft wollen wir die Tab-Vervollständigung mit Alias-Befehlen wie b arbeiten lassen, aber niemand hat Zeit gehabt, diesen noch anzugehen.

+0

Ich habe [eine ähnliche Frage] (http://stackoverflow.com/questions/37612340/when-can-lldb-autocomplete-expression) über die automatische Vervollständigung, können Sie einen Blick darauf werfen? Scheint du weißt etwas über lldb. Vielen Dank. – Karl

Verwandte Themen