# epasveer/seer

**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/epasveer-seer).**

3,351 stars · 112 forks · C++ · gpl-3.0

## Links

- GitHub: https://github.com/epasveer/seer
- awesome-repositories: https://awesome-repositories.com/repository/epasveer-seer.md

## Topics

`cpp` `debug` `debugger` `debugger-gdb` `debugger-visualizer` `debugger-visualizers` `debuggers` `debugging` `debugging-tool` `debugging-tools` `gdb` `gdb-frontend` `gdb-mi` `gdb-ui` `gdbserver` `gnu-debugger` `qt` `qt5` `qt6`

## Description

Seer is a graphical frontend for GDB that provides a visual interface for inspecting variables, managing breakpoints, and stepping through code. It functions as a low-level debugger visualizer with specialized tools for call stack inspection and register visualization.

The project distinguishes itself by integrating low-level program analysis directly into the visual experience, featuring a synchronized assembly overlay that maps CPU registers and assembly instructions to source code lines. It also includes memory bug detection capabilities by randomizing the program starting address during the debugging process and maintains a value history log to track variable snapshots across execution steps.

The tool covers broad debugging capabilities including stack frame navigation, real-time variable monitoring, and the management of conditional breakpoints, watchpoints, and catchpoints. It supports session initialization and parameter configuration via command-line arguments.

## Tags

### Development Tools & Productivity

- [GDB Graphical Interfaces](https://awesome-repositories.com/f/development-tools-productivity/gdb-graphical-interfaces.md) — Provides a comprehensive graphical interface to control GDB sessions and manage debugging tasks without terminal commands.
- [Source and Assembly Navigators](https://awesome-repositories.com/f/development-tools-productivity/source-level-debuggers/source-and-assembly-navigators.md) — Provides a synchronized view that maps assembly instructions and CPU register values directly to source code lines.
- [Breakpoint Managers](https://awesome-repositories.com/f/development-tools-productivity/breakpoint-managers.md) — Manages a variety of breakpoint types, including watchpoints and catchpoints, with integrated conditional logic.
- [Debugger Visualizations](https://awesome-repositories.com/f/development-tools-productivity/browser-based-app-inspection/debugger-visualizations.md) — Visualizes the state of an external debugger, specifically integrating registers, assembly, and source mapping.
- [Call Stack Navigators](https://awesome-repositories.com/f/development-tools-productivity/call-stack-navigators.md) — Enables inspection and traversal of active execution frames to understand the program's call path.
- [Stack Frame Inspectors](https://awesome-repositories.com/f/development-tools-productivity/dynamic-variable-evaluators/stack-frame-inspectors.md) — Allows inspection of local variables and arguments by selecting specific frames within the call stack. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))
- [Scope Switchers](https://awesome-repositories.com/f/development-tools-productivity/dynamic-variable-evaluators/stack-frame-inspectors/scope-switchers.md) — Updates variable and source views to reflect selected stack frame arguments and locals on double-click.
- [GDB Graphical Frontends](https://awesome-repositories.com/f/development-tools-productivity/gdb-graphical-frontends.md) — Provides a visual interface for inspecting variables, managing breakpoints, and stepping through code without using a terminal. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))
- [Register and Variable Monitors](https://awesome-repositories.com/f/development-tools-productivity/register-and-variable-monitors.md) — Tracks variable values and register states in real time to identify data changes at each breakpoint. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))
- [Stack Frame Navigators](https://awesome-repositories.com/f/development-tools-productivity/stack-frame-navigators.md) — Enables switching the active context to selected stack frames to update variable and source views.
- [Value History Logs](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools/intermediate-output-inspection/variable-inspection-tools/value-history-logs.md) — Records variable snapshots at each breakpoint hit to enable time-travel inspection of value changes.

### Networking & Communication

- [Protocol Bridges](https://awesome-repositories.com/f/networking-communication/transport-bridges/protocol-bridges.md) — Provides a protocol bridge utilizing the GDB Machine Interface (MI) for asynchronous communication and state retrieval.

### Operating Systems & Systems Programming

- [Low-Level Debuggers](https://awesome-repositories.com/f/operating-systems-systems-programming/low-level-debuggers.md) — Allows low-level analysis by mapping CPU registers and assembly instructions directly to source code.
- [Thread Inspection](https://awesome-repositories.com/f/operating-systems-systems-programming/thread-inspection.md) — Lists active threads and associated frames to analyze the call sequence and current execution state. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))
- [Address Randomization Tools](https://awesome-repositories.com/f/operating-systems-systems-programming/address-randomization-tools.md) — Implements program start address randomization to help identify memory-related bugs during the debugging process.
- [Execution Address Randomizers](https://awesome-repositories.com/f/operating-systems-systems-programming/execution-address-randomizers.md) — Randomizes the program starting address to help identify memory-related bugs during the debugging process. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))
- [Memory Corruption Debugging](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-corruption-debugging.md) — Identifies memory corruption and unstable pointers by utilizing program start address randomization.

### System Administration & Monitoring

- [Runtime Variable Debuggers](https://awesome-repositories.com/f/system-administration-monitoring/real-time-monitoring-systems/runtime-variable-debuggers.md) — Provides a graphical interface for monitoring and logging variable values across execution steps. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))

### Data & Databases

- [State Snapshots](https://awesome-repositories.com/f/data-databases/data-snapshotting/state-snapshots.md) — Records variable state snapshots at each breakpoint to allow time-travel inspection of data changes.
- [Temporal State Tracking](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-operations/sql-query-execution/history-tracking/variable-state-tracking/temporal-state-tracking.md) — Tracks the history of variable values across multiple breakpoints to analyze data evolution over time.

### Programming Languages & Runtimes

- [Function Entry Breakpoints](https://awesome-repositories.com/f/programming-languages-runtimes/program-entry-points/entry-point-breakpoints/function-entry-breakpoints.md) — Can be configured to halt execution at a specific function or address immediately upon program launch. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))

### Testing & Quality Assurance

- [Runtime Disassembly Views](https://awesome-repositories.com/f/testing-quality-assurance/assembly-inspection-tools/runtime-disassembly-views.md) — Provides a dedicated window for viewing and analyzing the underlying assembly instructions of a running program. ([source](https://cdn.jsdelivr.net/gh/epasveer/seer@main/README.md))

### Part of an Awesome List

- [Debugging Tools](https://awesome-repositories.com/f/awesome-lists/devtools/debugging-tools.md) — Graphical user interface for GDB with modern features.
