Convert Figma logo to code with AI

cs01 logogdbgui

Browser-based frontend to gdb (gnu debugger). Add breakpoints, view the stack, visualize data structures, and more in C, C++, Go, Rust, and Fortran. Run gdbgui from the terminal and a new tab will open in your browser.

9,846
496
9,846
161

Top Related Projects

Modular visual interface for GDB in Python

6,807

GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux

7,268

Exploit Development and Reverse Engineering with GDB Made Easy

5,843

PEDA - Python Exploit Development Assistance for GDB

6,149

A hacky debugger UI for hackers

Quick Overview

GDBGUI is a browser-based frontend for GDB (GNU Debugger), providing a modern and user-friendly interface for debugging applications. It allows developers to debug their code visually, with features like viewing source code, setting breakpoints, and inspecting variables, all within a web browser.

Pros

  • Easy-to-use graphical interface, making debugging more accessible for beginners
  • Cross-platform compatibility (works on Windows, macOS, and Linux)
  • Supports remote debugging and can be run on a server
  • Integrates well with existing GDB workflows and commands

Cons

  • Requires GDB to be installed separately
  • May have performance limitations compared to native GDB for very large projects
  • Limited customization options compared to some IDEs with built-in debuggers
  • Depends on browser compatibility and may have occasional rendering issues

Getting Started

To install and run GDBGUI:

pip install gdbgui
gdbgui [options] [path/to/executable]

For example, to debug a C++ program:

g++ -g myprogram.cpp -o myprogram
gdbgui ./myprogram

This will launch GDBGUI in your default web browser. You can then set breakpoints, step through code, and inspect variables using the graphical interface.

For more advanced usage, you can specify additional options:

gdbgui --host 0.0.0.0 --port 5000 --remote localhost:2345 ./myprogram

This example runs GDBGUI on a specific host and port, and connects to a remote GDB server.

Competitor Comparisons

Modular visual interface for GDB in Python

Pros of gdb-dashboard

  • Lightweight and runs directly within GDB, requiring no additional dependencies
  • Highly customizable with modular dashboard components
  • Seamless integration with existing GDB workflows and commands

Cons of gdb-dashboard

  • Text-based interface may be less intuitive for some users
  • Limited visual representations compared to graphical interfaces
  • Requires manual configuration and setup for optimal use

Code Comparison

gdb-dashboard:

dashboard -layout source variables stack threads
dashboard source -style height 20
dashboard variables -style compact True

gdbgui:

from gdbgui import start_gdbgui
start_gdbgui(gdb_cmd=['gdb', './my_program'])

gdb-dashboard focuses on configuring the dashboard layout and style directly within GDB, while gdbgui provides a Python-based approach to launching a web-based interface.

Key Differences

  • Interface: gdb-dashboard is terminal-based, while gdbgui offers a web-based GUI
  • Setup: gdb-dashboard requires manual configuration, gdbgui provides a more streamlined setup
  • Extensibility: gdb-dashboard allows for fine-grained customization, gdbgui offers a more standardized interface
  • Dependencies: gdb-dashboard has minimal dependencies, gdbgui requires additional Python packages

Both tools aim to enhance the GDB debugging experience, with gdb-dashboard focusing on terminal users and gdbgui catering to those who prefer graphical interfaces.

6,807

GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux

Pros of GEF

  • More comprehensive feature set for advanced debugging and exploit development
  • Deeper integration with GDB, offering enhanced command-line functionality
  • Better suited for security researchers and reverse engineers

Cons of GEF

  • Steeper learning curve due to its extensive feature set
  • Command-line interface may be less intuitive for some users
  • Requires more setup and configuration compared to gdbgui

Code Comparison

GEF example:

gef➤ checksec
[+] checksec for '/bin/ls'
Canary                        : ✓
NX                            : ✓
PIE                           : ✓
Fortify                       : ✓
RelRO                         : Full

gdbgui example:

# No direct equivalent, but gdbgui provides a graphical interface for similar information
# Users can interact with the GUI to view process information and security features

GEF is a powerful GDB extension focused on exploit development and reverse engineering, offering advanced features through a command-line interface. It's well-suited for security professionals but may have a steeper learning curve.

gdbgui, on the other hand, provides a user-friendly web-based interface for GDB, making it more accessible for beginners and those who prefer graphical interfaces. While it may not have as many advanced features as GEF, it offers a more intuitive debugging experience for general-purpose development.

7,268

Exploit Development and Reverse Engineering with GDB Made Easy

Pros of pwndbg

  • Integrated seamlessly with GDB, providing a familiar command-line interface
  • Extensive features for reverse engineering and exploit development
  • Actively maintained with frequent updates and community contributions

Cons of pwndbg

  • Steeper learning curve for users new to GDB or command-line interfaces
  • Limited visual representation compared to GUI-based tools
  • Requires manual configuration and setup for optimal use

Code Comparison

pwndbg:

import gdb
import pwndbg

class MyCommand(gdb.Command):
    def __init__(self):
        super().__init__("mycommand", gdb.COMMAND_USER)

gdbgui:

from gdbgui import __version__
from gdbgui.backend import app, socketio

@app.route('/')
def gdbgui():
    return render_template('gdbgui.html', version=__version__)

Summary

pwndbg is a powerful GDB plugin tailored for reverse engineering and exploit development, offering extensive features through a command-line interface. It excels in providing detailed analysis tools but may be challenging for beginners. gdbgui, on the other hand, offers a user-friendly web-based interface for GDB, making it more accessible for those who prefer graphical interfaces. While pwndbg provides more advanced features for security research, gdbgui focuses on ease of use and visual representation of debugging information.

5,843

PEDA - Python Exploit Development Assistance for GDB

Pros of PEDA

  • Lightweight and runs directly in the terminal, requiring no additional GUI setup
  • Provides colorized and enhanced GDB output for better readability
  • Includes built-in exploit development assistance features

Cons of PEDA

  • Limited to command-line interface, which may be less intuitive for some users
  • Requires manual installation and configuration of GDB extensions
  • Less cross-platform compatibility compared to web-based solutions

Code Comparison

PEDA command example:

gdb-peda$ pdisas main

gdbgui equivalent:

# No direct equivalent, but similar functionality can be achieved through the GUI

Additional Notes

PEDA is a Python Exploit Development Assistance for GDB, focusing on enhancing the command-line debugging experience. It's particularly popular among security researchers and exploit developers.

gdbgui, on the other hand, provides a modern web-based interface for GDB, making it more accessible to users who prefer graphical interfaces. It offers a more user-friendly experience but may have a slightly higher resource overhead due to its web-based nature.

Both tools aim to improve the debugging experience with GDB, but they cater to different user preferences and use cases.

6,149

A hacky debugger UI for hackers

Pros of Voltron

  • Supports multiple debuggers (GDB, LLDB, WinDbg, VDB)
  • Highly customizable and extensible with plugins
  • Offers a terminal-based interface for better integration with command-line workflows

Cons of Voltron

  • Steeper learning curve and more complex setup
  • Less intuitive for beginners compared to gdbgui's web interface
  • May require more configuration to achieve desired layout and functionality

Code Comparison

Voltron configuration example:

from voltron.plugin import api

class ExampleView(api.TerminalView):
    def render(self):
        return self.proc.registers()

gdbgui usage example:

import gdbgui.backend as backend

backend.run_server(
    host='localhost',
    port=5000,
    debug=True
)

While both projects aim to enhance debugging experiences, Voltron focuses on flexibility and terminal integration, whereas gdbgui provides a more accessible web-based interface. Voltron's code example demonstrates its plugin system, while gdbgui's shows its simple server setup. The choice between them depends on user preferences for interface type, customization needs, and debugging environment requirements.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

A browser-based frontend to gdb (gnu debugger)

image PyPI version image


Documentation: https://gdbgui.com

Source Code: https://github.com/cs01/gdbgui/