hiro99ma blog

rust: vscodeで値を見たい

2025/10/14

lldb-dap を使うと vscode のデバッガから値を見ることができそうだった。
WSL2 の Ubuntu 22.04.5 LTS を使っている。

LLVM

lldb-dap の実行ファイルがないのでビルド済み LLVM からもらってくる。

tar xf LLVM-21.1.3-Linux-X64.tar.xz などで展開し、どこかに置く。
どこがよいかよくわからんので sudo mv LLVM-21.1.3-Linux-X64 /usr/local/LLVM-21.1.3 とした。

パスをいくつか通す。

LLVM_PATH=/usr/local/LLVM-21.1.3
export PATH=$LLVM_PATH/bin:$PATH
export LD_LIBRARY_PATH=$LLVM_PATH/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$LLVM_PATH/local/lib

通した後で lldb-dap を実行してエラーにならず何も出力されなければひとまずOK。 Ctrl+Cで終わらせて良い。

Python 3.10

私の環境では Python 3.10.12 が入っていたのだが、そうではない環境もあるだろう。
そうすると lldb-dap を実行したとき、libpython3.10 なんとか so がない、みたいなエラーが出ると思う。
環境変数 PYTHONPATH の先が python3.10 なのでバージョン固定なのだろう。 pyenv をインストールして 3.10 の最新版を使えばよさそうだった。
lldb-dap のときだけそのバージョンにすれば良いのだが、よくわからないので pyenv global で切り替えた。

rust

rust/src/etc/ にあるファイルを使うのだが、 直接読み込むファイル以外にも必要そうだったのであきらめて git clone でまるまる持ってくる。

git clone --depth=1 https://github.com/rust-lang/rust.git などして適当に取ってくる。
履歴管理しないので ZIP で持ってきても良い気がしてきたが、好みで。

このあとでパスを指定して参照するので、自分の隙な場所で良い。
ここでは ~/rust の中に clone して ~/rust/rust-lang-git という名前にした。

vscode

Extension “lldb-dap” をインストール。

launch.json

こういう感じで。

        {
            "name": "addr",
            "type": "lldb-dap",
            "request": "launch",
            "program": "${workspaceFolder}/target/debug/bdk-starter-example",
            "args": ["addr"],
            "initCommands": [
                "command script import ~/rust/rust-lang-git/src/etc/lldb_lookup.py",
                "command source ~/rust/rust-lang-git/src/etc/lldb_commands"
            ],
            "sourceMap": {"/mnt/wsl/home2/xxx/Bitcoin/rust/bdk-example": "/home/xxx/Bitcoin/rust/bdk-example"},
            "cwd": "${workspaceFolder}"
        }

このように見える

デバッグ実行して止めると、コマンドライン引数の args が展開できて文字も見えた。

image

整数値はもともと見えていたし、配列と文字列が見えるようになったくらいなのか・・・?
まあ、見えないよりは良いだろう。

writer: hiro99ma

 < Top page

コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage

About me