Rust, いいですね。現代の知見と技術に基づいて C++ を再設計したという感じがします。
Visual Studio Code を使ってブレークポイントを張ったり、変数の中身をみたりできるようにしてみましょう。
環境
-
- Rust 1.55.0 (stable)
-
- Visual Studio Code 1.60.2
- macOS Bit Sur 11.6
Rust のインストール
$ curl https://sh.rustup.rs -sSf | sh
インストールオプションは 1 の default でよいです。
Current installation options:
default host triple: aarch64-apple-darwin
default toolchain: stable (default)
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
インストーラが終了したら、
$ source $HOME/.cargo/env
で $PATH を更新します。
Rust の標準ライブラリのソースコードもインストールしておきます。デバッガで見られるようになります。
$ rustup component add rust-src
LLDB のインストール
LLDB をインストールします。すでに Xcode がインストールされていれば不要です。
$ xcode-select --install
Installing on MacOS
Visual Studio Code プラグインのインストール

プロジェクトの設定
cargo で適当にプロジェクトを作って開きます。
$ cargo new hello_world
初回は rls をインストールするか聞かれるのインストールします。

Debug -> Start Debugging しようとすると使用するデバッガを聞かれるので LLDB を選択します。

すると launch.json が作られるので次のように sourceMap の設定を追加します。これで先ほどインストールした Rust の標準ライブラリのソースコードも見られるようになります。
"sourceMap": {
"/rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/": "${env:HOME}/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/"
}
c8dfcfe046a7680554bf4eb612bad840e7631c4b の部分は rustc –version –verbose で表示される Rust 自体の commit-hash です。

これでデバッグ実行できるようになるはずです。
