# go-delve/delve

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/go-delve-delve).**

24,605 stars · 2,196 forks · Go · mit

## Links

- GitHub: https://github.com/go-delve/delve
- awesome-repositories: https://awesome-repositories.com/repository/go-delve-delve.md

## Topics

`debugger` `go` `golang`

## Description

Delve is a command-line debugger designed for programs written in the Go programming language. It provides an interactive interface for runtime analysis, allowing developers to control program execution, inspect memory and variable states, and navigate call stacks to identify logic errors.

The tool distinguishes itself through deep integration with the Go runtime, specifically by providing goroutine-aware stack unwinding and the ability to manage concurrent execution threads. It utilizes a client-server protocol to decouple the debugger engine from the user interface, enabling both local and remote debugging sessions. By leveraging hardware-assisted breakpoints and kernel-level process attachment, it allows for the inspection of running applications without requiring modifications to the original source code.

The debugger includes a comprehensive set of utilities for troubleshooting complex systems, including conditional breakpoint management and symbol resolution based on compiled debug information. It supports various installation methods, including pre-compiled binary releases and source-based compilation, while requiring specific system permissions to facilitate process control and diagnostic tasks on the host machine.

## Tags

### Development Tools & Productivity

- [Debuggers](https://awesome-repositories.com/f/development-tools-productivity/debuggers.md) — Provides deep inspection and execution control for programs written in a specific compiled programming language.
- [Runtime Debuggers](https://awesome-repositories.com/f/development-tools-productivity/runtime-debuggers.md) — Analyzes the execution of a running program by stepping through code and inspecting variables.
- [Execution Controllers](https://awesome-repositories.com/f/development-tools-productivity/execution-controllers.md) — Provides commands to start, restart, continue, and step through code execution. ([source](https://github.com/go-delve/delve/tree/master/Documentation/cli))
- [State Inspectors](https://awesome-repositories.com/f/development-tools-productivity/state-inspectors.md) — Allows users to examine program state by printing variable values and monitoring expressions. ([source](https://github.com/go-delve/delve/tree/master/Documentation/cli))
- [Process Inspectors](https://awesome-repositories.com/f/development-tools-productivity/process-inspectors.md) — Monitors memory, variables, and execution threads to analyze state changes in multi-threaded applications.
- [Process Lifecycle Managers](https://awesome-repositories.com/f/development-tools-productivity/process-lifecycle-managers.md) — Manages process lifecycles, including starting, pausing, and stepping through code to identify logic errors.
- [Breakpoint Managers](https://awesome-repositories.com/f/development-tools-productivity/breakpoint-managers.md) — Supports setting, clearing, and configuring conditional breakpoints to halt program flow. ([source](https://github.com/go-delve/delve/tree/master/Documentation/cli))
- [Thread Managers](https://awesome-repositories.com/f/development-tools-productivity/thread-managers.md) — Enables switching between concurrent execution units to diagnose synchronization issues. ([source](https://github.com/go-delve/delve/tree/master/Documentation/cli))
- [Call Stack Navigators](https://awesome-repositories.com/f/development-tools-productivity/call-stack-navigators.md) — Provides tools to trace execution paths by listing active frames and moving between stack levels. ([source](https://github.com/go-delve/delve/tree/master/Documentation/cli))
- [Debugging Protocols](https://awesome-repositories.com/f/development-tools-productivity/debugging-protocols.md) — Implements a structured message protocol to separate the debugger engine from the user interface.

### Operating Systems & Systems Programming

- [Breakpoint Injection Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/breakpoint-injection-utilities.md) — Modifies process instruction streams or sets processor-level registers to trigger execution halts.
- [System Call Debugging Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/system-call-debugging-interfaces.md) — Uses operating system system calls to pause, resume, and inspect process memory and register states.
- [Stack Unwinders](https://awesome-repositories.com/f/operating-systems-systems-programming/stack-unwinders.md) — Traverses call stacks by interpreting runtime-specific metadata to track execution across concurrent units.

### Software Engineering & Architecture

- [Concurrency Analyzers](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-analyzers.md) — Diagnoses synchronization issues and race conditions by monitoring multiple execution threads.
- [Execution Flow Analyzers](https://awesome-repositories.com/f/software-engineering-architecture/execution-flow-analyzers.md) — Traces the path of a program through the call stack to understand function reachability.
- [Symbol Resolution Engines](https://awesome-repositories.com/f/software-engineering-architecture/symbol-resolution-engines.md) — Parses compiled debug information to map machine addresses back to human-readable source code.

### System Administration & Monitoring

- [Process Attachment Tools](https://awesome-repositories.com/f/system-administration-monitoring/process-attachment-tools.md) — Hooks into the operating system kernel to gain control over existing processes without source modification.

### Testing & Quality Assurance

- [Crash Analysis Tools](https://awesome-repositories.com/f/testing-quality-assurance/crash-analysis-tools.md) — Navigates call frames and execution paths to reconstruct the sequence of events leading to a program crash.
