Skip to content

andersonjoseph/drill

Repository files navigation

Drill

Drill

Drill is a terminal-based debugger designed to provide a lightweight and simple debugging experience. While it is not yet stable and lacks many features found in full-featured debuggers, Drill has been a great alternative to print debugging and fits seamlessly into my workflows (terminal-based tools)

Watch the video


Features

  • Terminal User Interface (TUI): Built using Charmbracelet's Bubbletea and friends
  • Breakpoint Management: Set, toggle, and delete breakpoints with ease.
  • Callstack Navigation: View and navigate through the callstack during execution.
  • Variable Inspection: Inspect local variables at runtime.

Current Limitations

Drill is still in its early stages of development and is not stable. It lacks many features that other full-featured debuggers provide, such as:

  • Comprehensive test case support (work in progress).
  • Some debugging capabilities like watchpoints, or remote debugging.
  • Robust error handling (there are still some bugs here and there to fix).

(However. Drill has become my go-to debugging tool for now. It effectively meets my current needs.)


Why I Built Drill

Drill was created as a learning project to explore building TUIs with Charmbracelet's Bubbletea and related tools. Inspired by gdlv and powered by Delve


Future Plans

  • Test Case Support: I plan to add support for most of the test cases described in aarzilli/delve_client_testing.
  • Bug Fixes: Fix some of the annoying bugs.
  • Feature Enhancements: Gradually adding more advanced debugging features to make Drill more robust.

Acknowledgments

A huge thank you to the following projects and their maintainers for their inspiration and contributions:

  • Charmbracelet's Bubbletea & Friends: An amazing framework for building TUIs.
  • gdlv: The main inspiration for Drill.
  • Delve: The backend whose source code was a pleasure to read and learn from.

About

terminal-based debugger for golang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages