All notable changes to the "Gimlet" extension will be documented in this file.
- refactor(port): replace
netstatshell-out withsysteminformationfor cross-platform port detection
Stable release — consolidates all changes since v0.0.10.
- feat: CPI debugging across multiple programs in a single test (#48)
- feat: CodeLens button for SBPF debugging on Rust macros and TS test blocks
- feat: SBPF debug via VS Code debug adapter
- feat: session manager with state management and concurrent session prevention
- feat: output channel for stdout and stderr
- feat: configurable trace directory via
sbfTraceDiringimlet.json(#50) - feat: support for all Solana projects, not only Anchor
- feat:
stopOnEntryoption ingimlet.jsonto control initial breakpoint behavior - feat:
Gimlet: Stop Debug Sessioncommand - feat: program resolution via sha256 hash mapping from
program_ids.map - feat: timestamped logging via VS Code OutputChannel (
Gimletchannel) - ci: add CI workflow with lint, syntax check, and dry-run packaging (#54)
- docs: troubleshooting documentation (#45)
- fix: fail immediately when no debug session is found on the port (#56)
- fix: improve error message when
program_ids.mapis not found - fix: scope PYTHONPATH to debug session instead of persisting in workspace settings
- fix: set PYTHONPATH for LLDB Python on all platforms (#52, #53)
- fix: auto-stop debugger when test execution ends or fails (#51)
- fix: continue process command (#46)
- fix: symlink issues when using LLDB library on linux-x86
- fix: rust-analyzer cursor pointer for editor
- fix: resolved all 75 reported npm vulnerabilities (#49)
- docs: align readme with latest sbpf-debugger feature changes (#55)
- chore: bump dependencies & README (#49)
- refactor: simplified and modularized extension architecture (#48)
- refactor: CodeLens no longer depends on rust-analyzer; uses direct text scanning
- refactor: users now build manually with
cargo-build-sbf; removed build strategies - refactor:
lldb.libraryscoped per debug session to avoid conflicts with rust-analyzer debugging - chore: trace directory defaults to
target/sbf/traceinstead oftarget/deploy/debug/sbf/trace - chore: compatible with platform-tools v1.54
- chore: bump all dependencies to latest major versions
agave-ledger-tooldependency- Build strategies (
baseBuildStrategy,sbpfV1BuildStrategy,buildCommands) constants.js,docs/input-for-ledger-tool.md- Unused config properties (
solanaDebugger.solanaLldbPath,gimlet.enableCodeLens) - Unused test scaffolding (
@types/mocha,@vscode/test-cli,@vscode/test-electron)
- Updated README to align with latest sbpf-debugger feature changes
- Fail immediately when no debug session is found on the port instead of waiting silently
- Improve error message when program_ids.map is not found to mention SBF_TRACE_DIR and sbfTraceDir config
- Scope PYTHONPATH to debug session instead of persisting in workspace settings
- CI workflow with lint, syntax check, and dry-run packaging on every push
- Set PYTHONPATH for LLDB Python module resolution on all platforms
- Set PYTHONPATH for LLDB Python module resolution on all platforms via initCommands as script command
- Set PYTHONPATH for LLDB Python module resolution on all platforms via initCommands
sbfTraceDirconfig option ingimlet.jsonto override the default trace directory with a workspace-relative path
- Trace directory now defaults to
target/sbf/traceinstead oftarget/deploy/debug/sbf/trace
- Show specific error messages for each scan failure instead of a generic one
- Stop debug process when trace is not found
- Recalculate config paths on hot-reload so cached values stay in sync
- Load existing gimlet.json values into globalState on activation so sbfTraceDir is picked up immediately
- Reset sbfTraceDir to default when removed from gimlet.json instead of keeping the stale value
- Auto-stop debugger when test execution ends or fails instead of polling forever
- Auto-set PYTHONPATH for LLDB Python module resolution on all platforms
- Screenshot in README demonstrating how the debugger works
- Bump all dependencies to latest major versions: toml 4.1.1, eslint 10.2.0, globals 17.4.0, @types/node 22.x, @types/vscode 1.110.0, prettier 3.8.1
- Unused test scaffolding (@types/mocha, @vscode/test-cli, @vscode/test-electron, boilerplate test file)
- Resolved all 75 reported npm vulnerabilities
- CPI debugging: debug across multiple programs in a single test
stopOnEntryoption ingimlet.jsonto control initial breakpoint behavior- Timestamped logging via VS Code OutputChannel (
Gimletchannel) Gimlet: Stop Debug Sessioncommand- Program resolution via sha256 hash mapping from
program_ids.map
- Users now build manually with
cargo-build-sbf - CodeLens no longer depends on rust-analyzer; uses direct text scanning
lldb.libraryscoped per debug session to avoid conflicts with rust-analyzer debugging- Rewrote
gimlet-setup.shto check current dependencies - Updated README and docs for new workflow
- Compatible with platform-tools v1.54
- Build strategies (
baseBuildStrategy,sbpfV1BuildStrategy,buildCommands) constants.jsdocs/input-for-ledger-tool.md- Unused config properties (
solanaDebugger.solanaLldbPath,gimlet.enableCodeLens) agave-ledger-tooldependency
- Added documentation highlighting common errors and troubleshooting steps when manually creating input JSON files for
agave-ledger-tool. #45
- Updated input ledger tool documentation.
- Improved time between lldb to ledger tool connection. #44
- Added Solana-lldb Troubleshooting
- Updated documentation for clearer setup instructions, troubleshooting steps, and usage guidance
- Extended the time between solana-lldb and agave-ledger-tool gdb connection
- Added the npm package link to the docs inside the input-for-ledger-tool.md to provide automatic JSON generation
- Mapped functions to addresses for instruction-level breakpoints with per-instruction debugging. #41
- Fix support for individual programs in multi-program Anchor projects #39
- Update documentation
- Use eBPF files for debugging instead of executable created from tests #38
- Refactored to use eBPF files for debugging instead of cargo test executable ones
- Implemented anchor logic to create binary exe and run it in lldb
- Updated README
- Changed package name determination format #15
- Breakpoint listener and active instance of lldb terminal #36
- Improved README structure and content #25
- Bug with terminal name #10
- Logo and extension name #9
- Updated documentation #8
- Updated README with comprehensive setup instructions
- Initial release of Gimlet extension
- Support for
solana-lldbandagave-ledger-tool - Dynamic breakpoint setting and deletion in VSCode
- WSL support with rust-lldb
- Path support for different environments
- VSCode engine compatibility for backwards compatibility
- Add MIT License
- GitHub Actions for CI/CD and publishing workflow
- Fixed solana-lldb to properly compile and execute lib.rs Solana programs
- Updated VS Code engine version for backwards compatibility
- Alpha release with initial debugging capabilities
- Basic CI/CD setup
- Publisher configuration