ASan Explorer

Navigate AddressSanitizer (and other LLVM sanitizer) reports inside VS Code: load a log, browse stack sections in a dedicated side bar, and jump straight to the offending source lines.
All parsing runs locally on your machine — no telemetry and no network calls from the extension.
Features
- Structured report tree — error type, access summary, and stack sections (
Error stack, Freed by, Allocated by)
- One-click navigation — click a frame with a symbolized path to open
file:line:column
- Multiple load sources
- Active VS Code terminal (shell integration and/or scrollback snapshot)
- Clipboard
- Active editor (or current selection)
- File picker
- Default workspace log (
log.txt by default)
- Optional auto-load when a terminal command prints an ASan report
- Path remapping — rewrite build-machine paths to local sources (
FROM=TO)
- Welcome view — empty state with the main actions
Quick start
- Install the extension (Marketplace or local VSIX) and open a C/C++ workspace.
- Reproduce a bug under ASan so you get a symbolized report (compile with
-g -fno-omit-frame-pointer).
- Run the binary in a VS Code terminal (shell integration on) — the report can auto-load, or run ASan: Load Report from Active Terminal. You can still paste from the clipboard or open a log file.
- Open the ASan Explorer activity-bar view and click a frame.
Example stack frame (symbolized):
[#0](https://github.com/VitorRamos/asan-hover/issues/0) 0x63d1e5aadc44 in main /tmp/asd/main.cpp:7:8
Frames without a source path still appear in the tree but are not navigable.
Commands
| Command |
Description |
ASan: Load Report from Active Terminal |
Read the active terminal (live buffer or scrollback) and parse the latest ASan dump |
ASan: Load Report from Clipboard |
Parse clipboard text as a sanitizer report |
ASan: Load Report from Active Editor |
Parse the open document (or selection) |
ASan: Load Report from File… |
Pick a log file |
ASan: Load Default Log File |
Load asanHover.defaultLogPath |
ASan: Clear Report |
Empty the tree |
ASan: Refresh View |
Re-render the tree (applies path mappings) |
Settings
| Setting |
Default |
Description |
asanHover.defaultLogPath |
log.txt |
Workspace-relative or absolute path to the default log |
asanHover.autoLoadDefaultLog |
false |
Load the default log on activation |
asanHover.autoLoadFromTerminal |
true |
Auto-load when the active terminal prints an ASan report |
asanHover.pathMappings |
[] |
FROM=TO pairs, e.g. "/tmp/asd=/home/me/project" |
Example app
A small C++ program under examples/asan-demo intentionally triggers several ASan error classes (use-after-free, buffer overflows, double-free, use-after-return):
cd examples/asan-demo
make capture # build + run all bugs → logs/*.txt
# then in VS Code: ASan: Load Report from File… → logs/uaf.txt
# or run `make run-uaf` inside the Extension Development Host terminal
See examples/asan-demo/README.md for details.
A static heap-use-after-free sample also lives at fixtures/sample-uaf.txt for offline testing.
Development
npm install
npm run compile
# Press F5 → "Run Extension"
npm run test:unit # parser / terminal helpers (no VS Code window)
npm run package # produce asan-hover-*.vsix
Requirements
- VS Code
^1.93.0 (shell-integration APIs for live terminal capture)
- Symbolized ASan output for source navigation (
llvm-symbolizer / -g)
Privacy
ASan Explorer processes reports only on your machine. It does not collect telemetry or send your code or logs to the publisher. See PRIVACY.md.
Support
This extension is free and community-supported.
- Bugs & questions: GitHub Issues or email
ramos.vitor89@live.com
- Security: see SECURITY.md (private reporting preferred for vulnerabilities)
License
MIT © 2023–2026 vitorramos
By obtaining this extension from the Visual Studio Marketplace you also agree to the applicable Marketplace terms between you and Microsoft. The MIT license governs use of the extension software itself.