どうすればデバッグできますかRustアプリケーションをステップバイステップで対話的に Rubyで "pry"でできるように?
ブレークポイントに到達したときに、リアルタイムで変数を確認し、できれば変更できるようにしたいです。生産準備完了プロジェクトはありますか?
VS Code および CodeLLDB 拡張機能を使用すると、使いやすさが向上します。
launch.json
ファイルが開きます。そうでない場合は、.vscode
フォルダーの下にあります。launch.json
は次のようになります。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/target/debug/hello_world",
"args": [],
"cwd": "${workspaceRoot}/target/debug/",
"sourceLanguages": ["Rust"]
}
]
}
物事を汎用的に保ち、貨物フォルダ名に一致するバイナリのみをコンパイルする場合は、「プログラム」キーの代わりに$ {workspaceRootFolderName}変数を使用できます。
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/target/debug/${workspaceRootFolderName}",
"args": [],
"cwd": "${workspaceRoot}/target/debug/",
"sourceLanguages": ["Rust"]
}
]
}
RustおよびVS Codeについてのブログ投稿は次のとおりです。
Rustコンパイラは、ネイティブデバッグ情報(シンボル)情報を含むネイティブバイナリを生成するため、すべてのネイティブデバッガが実行します。つまり、gdb
とlldb
、またはWindows RustのMSVC ABIバージョンを使用している場合は、デバッガー(WinDBGまたはVisual Studioのみ)。統合されたエクスペリエンスが必要な場合は、 RustDT が(Windowsでのセットアップ: 方法デバッグ用にGDBをセットアップするにはRust? )。 MSVC ABIのデバッグ中に変数値を検査するにはどうすればよいですか?) Rustプログラム? Windowsでは https://github.com/Rust-lang/Rust/issues/33062 Macでは。
グラフィカルデバッガには、 gdbgui があります。 Linux、Windows、MacOSで利用できます。ブラウザを表示として使用し、デバッガと対話します。
私はgdb 7.11を持っていますが、Rust-gdbコマンドは、gdbネイティブと比較してRust関連情報をより多く提供するようです。たとえば、Rust-gdbはRustオブジェクトを完全な名前で適切に表示しますが、gdbは単にそれらを表示しません。
次の例では、gdbはすべての太字部分で表示されます。
$ 1 = Args = {inner = ArgsOs = {inner = Args = {iter = IntoIter = {buf = NonNull = = {ポインタ= NonZero <* const std :: ffi :: os_str :: OsString> = {0x7ffff6c20060}}、ファントム= PhantomData、キャップ= 1、ptr = 0x7ffff6c20060、end = 0x7ffff6c20078}、_ dont_send_or_sync_me = PhantomData <* mut()>}}}