
CodeLLDB v1.12.2: the only native Rust debugger for VS Code on macOS/Linux.
rust-analyzer gives you completions, go-to-definition, and inline type hints. It doesn't give you a debugger. CodeLLDB (vadimcn.vscode-lldb) is the missing half: 10.4 million installs 1, a 4.93/5 rating, and the only practical native-debug path for Rust on macOS and Linux via VS Code.fn main() and test functions, but it requires an external debugger extension to do any real work. 2 On macOS and Linux that external extension is CodeLLDB. Without it, clicking "Debug" opens a VS Code Marketplace notification rather than a debug session.| Capability | What you get |
|---|---|
| Cargo integration | cargo property in launch.json — auto-builds the right binary and locates it; cargo test targets work without manual path hunting |
| Rust type visualizers | Vec<T>, String, HashMap<K,V>, BTreeMap<K,V> displayed as readable values in the Variables panel (auto-loaded from Rust toolchain's sysroot) |
| Conditional breakpoints | Three expression evaluators: Simple (default), Python (/py prefix), Native LLDB (/nat prefix) |
| Data breakpoints (watchpoints) | Right-click any variable → "Break When Value Changes" — hardware-backed, up to 4 on x86_64 |
| Disassembly view | Auto-activates when execution enters code without debug info; instruction-level stepping |
| Python scripting API | codelldb module with evaluate(), create_webview(), start_debugging() — build custom visualizers |
| Regex breakpoints | Prefix /re on a function breakpoint sets it on all matching function names at once |
| Remote debugging | lldb-server platform mode and gdbserver protocol for embedded or remote targets |

Ctrl+Shift+P) and run "CodeLLDB: Generate Cargo Launch Configurations". CodeLLDB reads your Cargo.toml and writes a launch.json covering every binary, example, and test target. 3cargo property replaces program and handles the build:// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests",
"cargo": {
"args": ["test", "--lib", "--", "--test-threads=1"],
"env": { "RUST_BACKTRACE": "1" }
},
"args": [],
"sourceLanguages": ["rust"]
}
]
}"sourceLanguages": ["rust"] line is required to activate Rust-specific type formatters. 3 Skip it and Vec<String> renders as a raw struct instead of a readable list.// break only when the loop counter is a multiple of 50
i % 50 == 0
// break when a specific key exists in a HashMap
/py "error_code" in [k for k in $map.keys()]/py prefix switches to full Python syntax with $variable substitution. The Debug Console also accepts LLDB commands directly; prefix with ? to evaluate an expression inline (?my_vec.len()). 3
vadimcn), verified publisher 1
License: MIT
VS Code requirement: 1.61.0 or later 5
Host platforms: Linux (glibc 2.18+, x86_64 / aarch64 / armhf), macOS (10.12+ x86_64, 11.0+ arm64), Windows 10/11 x86_64 3
Primary languages: Rust and C/C++; also supports Ada, Fortran, Kotlin Native, Nim, Objective-C, Swift, Zig 6x86_64-pc-windows-msvc) uses PDB debug info. LLDB's PDB support is less complete than DWARF and can trigger debugger crashes. vadimcn recommends the GNU ABI toolchain (x86_64-pc-windows-gnu) for the best Windows experience — "using DWARF (and therefore, the GNU ABI) is recommended whenever possible." 7 The MSVC toolchain also fails to fully decode Rust enums. 7.gnu_debugdata sections. No fix has shipped. 8SharedState or Arc<Mutex<HashMap<...>>>, the Variables panel may show only a [raw] pointer wrapper rather than the struct's contents. An open issue (#1361) labels this as a formatter bug. 9lldb.evaluateForHovers and lldb.commandCompletions in settings. 10valgrind or heaptrack separately. 6'A' packet returned an error: 8. Fix: add --security-opt seccomp=unconfined to your container, or set "initCommands": ["set set target.disable-aslr false"] in your launch config. 11vadimcn), verified · Version: v1.12.2 · License: MIT
Languages: Rust, C/C++, Swift, and more · IDE: VS Code ^1.61.0 · Use case: native debugging via LLDB
Install: vadimcn.vscode-lldb on VS Code Marketplace · GitHubmarketplace.visualstudio.com
code.visualstudio.com
github.com
github.com
raw.githubusercontent.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.