This all started because I was tired of the question of "what debugger" people will use on Linux or on any platform being a difficult question to answer. People are trying to learn C/C++ today and there aren't good solutions. Also I really need debugging tools for my other projects that are easier/faster to use. Current debugging solutions are often crash prone, not maintained, or slow, or just have (IMHO) poor user interfaces. Humbug is an attempt to get an immediate solution to this problem. Humbug uses GDB as a back-end, so much of the low-level debugging/tracing problem is already solved for us. Instead of trying to implement debugging at a low-level Humbug tries to focus on delivering a real usable today(ish) product.
Currently the project is in its infancy, with only a couple of months of work into it we are starting to get the basic features like:
- Very basic GUI
- Opens instantly
- Low lag user interface
- Steps though source-code
- Shows the stack frames
- Lists threads
- GDB console with history and tab completion (because we're GDB based this lets us get a ton of functionality right a way)
- Runs on Linux
- Watch window
- Symbol search: Locals, Globals, Functions...
Watch window (October 2017) (takes a minute to load video) :
This is a recent screenshot (September 2017) (takes a minute to load video):
But I expect the user interface to change considerably as development moves forward.
The current short-term goals are to get the basic features that one would expect from a debugger:
- Memory window
- Stepping though disassembly
- being able to open a ~10k line file
- Doesn't crash
- Ability to copy text from anywhere
Longer-term goal ideas:
- Limited dependancies
- Completely overhaul the GUI
- Further optimized
- Have a customization/automation API With IPC for interfacing with editors or command line tools
- Cross platform
- Humbug specific distribution of GDB
- API Bindings for many languages
The goals are very fluid and I expect them to change once we get feedback from users and the community. Once I get a couple more features out, I think I will be ready to start a ~$2 Patreon and have some real users. Also shortly after that time I'll probably start working on a HMN: Lessons Edition (working title) that will be free for the sole purpose of following lessons and other learning material like HMH.
I also have a Tello board that I am using to track bugs and feature requests that testers have access to. Part of being a Patreon will be having access to the board and being a part of that conversation. New features and next directions will guided by users voting on issues.
Eventually the customization layer will probably be offered as a premium product, (much like 4coder super). Once I get to this point, I'll probably have a HMN Gitlab where the customization layer code is hosted. This will serve as an easy way for me to publish updated header files, but is also a place where community users can post and share their own customizations if they wish.
I am very busy with other projects that help pay the bills, so I really only get to work on Humbug for a couple weekends each month. However, even with the limited time I can spend on this project I still feel that I can get a bit of progress in each month. When I do find time to work on it feel free to hang out with me while I stream the development: https://www.twitch.tv/croepha