Testing the Gimlet Debugger: In-Depth Feedback for a New Solana Development Tool

Introduction

In recent years, Solana has emerged as one of the most performant and scalable blockchain platforms. However, despite its technical strengths, the developer tooling ecosystem around Solana has lagged behind other blockchains, particularly when it comes to local debugging and development workflows. While Anchor—a framework for Solana smart contract development—has done much to ease the burden on developers, the lack of a robust step debugger has remained a major gap. This is where Gimlet steps in.

Developed by LimeChain, Gimlet is a new Visual Studio Code (VS Code) extension designed to bring local debugging capabilities to Solana programs. By wrapping two essential tools—solana-lldb and agave-ledger-tool—into a streamlined interface, Gimlet aims to provide smart contract developers with deeper insights into program behavior during development and testing.

This article provides a comprehensive review of Gimlet based on the bounty task posted by LimeChain. I will document the installation process, debugging experience, encountered issues, feedback on usability, and contributions made to the tool. I’ll also test both the LLDB and ledger functionalities of Gimlet, create a reproducible bug repository, and submit a pull request to improve the tool's setup experience. The goal is to offer actionable insights to help Gimlet evolve into a go-to debugging solution for the Solana developer community.


Section 1: Setup and Installation

Environment Details

Installation Process

Gimlet can be installed directly from the VS Code extensions marketplace. However, getting it to work requires installing two additional tools:

  1. solana-lldb: This tool is necessary for step debugging Solana smart contracts. It provides symbol-aware debugging similar to GDB or traditional LLDB.
  2. agave-ledger-tool: Used to inspect and modify the local test ledger state, this tool enables a deeper inspection of account balances, state changes, and transactions.

The installation guide in Gimlet’s README is functional but could be expanded with more explicit instructions. I found that several environment-specific problems needed manual resolution: