Step by step interactive debugger für Rost?
Wie kann ich den debug-Rost-Applikation Schritt für Schritt interaktiv wie ich in der Lage bin zu tun, mit "hebeln" in Ruby?
Ich möchte in der Lage sein zu sehen, und vorzugsweise Veränderung der Variablen in Echtzeit, wenn ich Sie erreichen einen break-Punkt. Gibt es eine Produktion, die bereit fertigen Projekt?
- Sie können den Gebrauch von gdb. Other than, die ich bin zu arbeiten auf einem stepper bei MIR (umgesetzt auf der Oberseite von miri), die Ihnen erlauben, zu Debuggen, die auf einer Art virtuellen Maschine.
- Oh! Ist miri nahe genug, um die Fertigstellung bereits? Ich dachte, es war noch in den frühen Stadien.
- es gibt noch einige Dinge, die nicht funktionieren noch (z.B. Funktionszeigern), aber langsam wird es dort.
- Das war cross-posted auf Reddit
- so?
- es ' s als Stack-Overflow (und Reddit) Etikette zu informieren Zukunft Suchenden von anderen Orten, die eine Antwort gefunden werden kann. So haben Sie eine bessere chance, nützliche Informationen. Es auch möglicherweise speichert ein Nutzer Zeit, wenn das, was Sie sagen wollten ist bereits bedeckt an einem anderen Ort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finde ich ein gutes Maß an Benutzerfreundlichkeit mit VS-Code und die CodeLLDB Erweiterung:
Beim Debuggen wird zum ersten mal gestartet, müssen Sie die Umgebung (der debugger): wählen Sie LLDB.
launch.json
Datei geöffnet, wenn nicht, öffnen Sie es, es ist unter.vscode
OrdnerIhre
launch.json
sollte wie folgt Aussehen:Wenn Sie wollte, um die Dinge generisch und nur kompilieren Sie eine binary, die Spiele der cargo-Ordner-Namen, den Sie verwenden konnten, ${workspaceRootFolderName} variable-substitution für die "Programm" Taste:
Hier sind einige blog-Beiträge über Rost und VS Code:
Arch Linux
Auf Windows
Der Rust-compiler erzeugt native binaries mit nativen debug-info (symbol) Informationen, also alle nativen debugger tun. Das bedeutet, dass
gdb
undlldb
oder den Windows Debugger (WinDBG oder einfach nur Visual Studio) wenn Sie mit der MSVC-ABI-version von Rust. Wenn Sie möchten, eine integrierte Erfahrung, RustDT ist der Weg zu gehen (setup unter Windows: Wie setzen Sie den GDB für debugging-Rost-Programme in Windows?). Bitte beachten Sie, dass Sie wahrscheinlich laufen in Wie kann ich überprüfen Werte von Variablen während des Debuggens MSVC ABI Rost Programme? auf Windows und https://github.com/rust-lang/rust/issues/33062 auf einem Mac.gdb 7.12
gibt ' s jetzt richtigen Unterstützung, nicht nur "funktioniert, weil es kompiliert native".Für einen grafischen debugger, es ist gdbgui. Es ist verfügbar für Linux, Windows und MacOS. Es nutzt der browser die Anzeige und Interaktion mit dem debugger.
Habe ich gdb 7.11 und Rost-gdb-Befehl zu geben scheint mehr Rost relevanten Informationen im Vergleich zum gdb native. ZB Rost-gdb zeigt Rost-Objekte korrekt mit vollen Namen und gdb einfach nicht anzeigen.
Im folgenden Beispiel gdb würde zeigen nun bei allen Fett Teile.
$1 = Args = {inner = ArgsOs = {inner = Args = {iter = IntoIter = {
buf = Null = {Zeiger = Ungleich null<*const std::ffi::os_str::OsString> = {
0x7ffff6c20060}}, phantom = PhantomData, gap = 1,
ptr = 0x7ffff6c20060, Ende = 0x7ffff6c20078}, _dont_send_or_sync_me = PhantomData<*mut ()>}}}