Skip to content
☕ GDBFrontend is an easy, flexible and extensionable gui debugger.
JavaScript Python CSS HTML
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api Added terminal toggle button Jan 21, 2020
bin FuzzyFinder and improvements. Dec 14, 2019
frontend Added keyboard navigation support to FileBrowser Jan 23, 2020
gui FuzzyFinder and improvements. Dec 14, 2019
media Update README.md Nov 28, 2019
plugins/hello Added --verbose option and bugfixes. Dec 23, 2019
python-libs Commit from linux Nov 19, 2019
url_modules FuzzyFinder and improvements. Dec 14, 2019
.gitattributes Plugin system, watches and improvements. Nov 28, 2019
.gitignore Update .gitignore Jan 22, 2020
.pylintrc Added terminal toggle button Jan 21, 2020
LICENSE Commit from linux Nov 19, 2019
README.md Added Plugin Dev Tutorial link to README.md Jan 22, 2020
config.py Added --verbose option and bugfixes. Dec 23, 2019
gdbfrontend Added --gdb-executable option, reloading open sources when objfile is… Nov 29, 2019
gdbfrontend-window Initial version v0.0.1 Nov 18, 2019
gotty.conf Commit from linux Nov 19, 2019
http_handler.py FuzzyFinder and improvements. Dec 14, 2019
http_server.py FuzzyFinder and improvements. Dec 14, 2019
main.py FuzzyFinder and improvements. Dec 14, 2019
plugin.py FuzzyFinder and improvements. Dec 14, 2019
run.py Added --verbose option and bugfixes. Dec 23, 2019
run_gui.py FuzzyFinder and improvements. Dec 14, 2019
server.py Added --verbose option and bugfixes. Dec 23, 2019
settings.py FuzzyFinder and improvements. Dec 14, 2019
statics.py Added keyboard navigation support to FileBrowser Jan 23, 2020
tmux.conf Commit from linux Nov 19, 2019
urls.py FuzzyFinder and improvements. Dec 14, 2019
util.py FuzzyFinder and improvements. Dec 14, 2019

README.md

GDBFrontend Website

GDBFrontend is an easy, flexible and extensionable gui debugger.

GitHub release GitHub issues GitHub forks GitHub stars GitHub license Donate Twitter

gdb-frontend

Installing

Deb Package (Debian / Ubuntu / KDE Neon)

You can install GDBFrontend via deb package for Debian-based distributions.

You can install it from following commands:

echo "deb [trusted=yes] https://oguzhaneroglu.com/deb/ ./" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update
sudo apt install gdbfrontend

After installing with APT, you will get updates for new releases on APT upgrade.

You can get upgrades with following commands:

sudo apt update
sudo apt upgrade gdbfrontend

and you can run it:

gdbfrontend

Running From GIT

You can download latest source and run it.

Requirements

  • GDB (with python3)
  • python3
  • tmux

You can run gdb-frontend with following commands:

git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend

and you can open it with:

http://127.0.0.1:5551/terminal/

or without terminal:

http://127.0.0.1:5551/

You can open GDB shell with the command:

tmux a -t gdb-frontend

Flatpak

Flatpak package is a TODO.

./gdbfrontend

$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.

Options:
  --help, -h:                           Shows this help message.
  --version, -v:                        Shows version.
  --gdb-executable=PATH, -g PATH:       Specifies GDB executable path (Default is "gdb" command on PATH environment variable.)
  --tmux-executable=PATH, -tmux PATH:   Specifies Tmux executable path (Default is "tmux" command on PATH environment variable.)
  --terminal-id=NAME, -t NAME:          Specifies tmux terminal identifier name (Default is "gdb-frontend".)
  --verbose, -V:                        Enables verbose output.

Options

--help, -h

Shows help text.

--version, -v

Shows version.

--gdb-executable=PATH, -g PATH

You can specify GDB executable path like gdbfrontend --gdb-executable=/path/to/gdb. (Optional)

--tmux-executable=PATH, -tmux PATH

You can specify Tmux executable path like gdbfrontend --tmux-executable=/path/to/tmux. (Optional)

--terminal-id=PATH, -t PATH

You can specify Tmux terminal id like gdbfrontend --terminal-id=terminal-name. (Default: gdb-frontend)

--verbose, -v

Enables verbose output.

Troubleshooting

Zombie Processes

Sometimes GDB and gdb-frontend may not be closed correctly. In this case, you can terminate gdb-frontend shell.

tmux kill-session -t gdb-frontend

GDB-Related Issues and Tips

  • GDB does not give sources of linked object until stepping a line that calls a function from the linked object once. You can add break point a line and step it once, then you will see sources from linked object hereafter during the session.

Windows

In fact, gdb-frontend is able to run on Windows but there are some serious issues in the GDB's Windows version those avoid using gdb-frontend on Windows. Of course you can use gdb-frontend on WSL if you are using Windows 10.

WSL

You can use gdb-frontend on WSL (Windows Subsystem for Linux).

Issues about Windows-GDB

  • GDB's main-thread is being blocked during running process. (gdb-frontend has an interrupting mechanism to fixing this but it is not enough yet.)
  • Windows-GDB's prompt is being blocked during running process and there are some issues about interrupting the application.
  • Current release of Windows-GDB contains Python2. New GDB have Python3 but it is not released yet.

Documentation

Documentation is TODO yet.

API Documentation

API Documentation is TODO yet.

Plugin Development

You can read the Plugin Development Tutorial.

Contributing

You can contribute with commiting to project or developing a plugin. All commits are welcome.

Donate

You can donate to support the project.

Donate using Liberapay

License

GNU General Public License v3 (GPL-3)

You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.

You can’t perform that action at this time.