Skip to content

gbrls/gdb-FunEnd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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