GitXplorerGitXplorer
g

gdb-FunEnd

public
13 stars
0 forks
0 issues

Commits

List of commits on branch main.
Verified
ec460212196040b5e9f50ce0c0db42c59f85df5e

Update README.md

ggbrls committed 3 years ago
Unverified
e1b901c8e8cc91a8d58a696ddb3d06b54014d9ab

Minor fixes

ggbrls committed 4 years ago
Unverified
e007386f9adc2c85cefc7512f21e05fc58dd4ef8

Updates to the memory viewer

ggbrls committed 4 years ago
Unverified
5a240a3ad3aa48b42188f4b43fd213d8e8c9d6ba

Basic memory reader implemented

ggbrls committed 4 years ago
Unverified
14cd293bb746e6bfe7c5e1151345a29a30190b98

Merge branch 'main' of github.com:gbrls/gdb-FunEnd

ggbrls committed 4 years ago
Unverified
736fdd52c319b1811916d98cbea242e68150b7ca

UI Refactor and new GDB console window

ggbrls committed 4 years ago

README

The README file for this repository.

GDB FunEnd

A fun gdb frontend!

Why?

First time I really needed GDB was when I was debugging the generated code from a compiler that I was writing. It work wonders to aid me in the debugging process, but the interface was really bad. I wanted to inspect memory, the registers and step instruction by instruction, gdb makes all of this possible, but not in a nice way.

How?

Recently I came across the idea of Tools for Thought which can be distilled as:

A tool that helps your thinking process, e.g: The Hindu–Arabic numeral system and Adobe Photoshop.

So, this project is an attempt to create a tool for thought that helps people to reason more deeply about the workings of computer programs.

Implementation

Right now we have a vertical slice of the project (we have a thread running GDB that communicates to a thread that displays the source code). We have a few threads running, those are the main ones:

  • GDB thread, it pipes the stdin/stdout to and form the GDB's process.
  • Graphics thread.

Why Rust?

I first considered writing this in C++, but then I thought about writing multithreaded code in it.

Missing features

  • Browse variables in a hierarchical manner.
  • Set breakpoints

Future!

This application will be refactored into a separate library and a frontend, this way many applications will be able to use GDB's capabilities in a easy way.

Contributing

If you want to help you need to setup the developing enviroment.

  • Install the rust toolchain https://rustup.rs/
  • Clone the repository
  • Build this project's documentation cargo doc --no-deps --open