HUMBUG»Blog

DONE With watch window.... FIN-AL-LY... Now planning next steps



I think that this has all the things needed for a competent watch window. There are a few more exotic things that I would like to add on as extra features, but Im really tired of working on it, so just want to move on to addressing some of the other issues.

I was expecting to be done with the watch window at the beginning of the month, but it seemed to keep dragging on. I was really hitting the limits of the GDB Machine Interface protocol implementing the symbol search, ended up having to scrape the data out of some Human interface output... but It works.

So, aside from taking care of some smaller misc things, I need to decide what the next major objective should be:

So my original plan, was to try to tackle the Memory window and Disassembly views next, as that would bring me closer to having the bare minimum features that would be needed for a debugger. I was also planning on coming back and doing a second pass on the GUI. But after adding a couple more people to the testing pool, the Bugs/Issues are starting to pile up and it doesn't feel right to move on until the issue list is under control. It seems like a growing number of the issues have to do with the GUI/Input:
- There are some bugs with things not being clickable until you move the mouse over them, (i.e. forcing a redraw)
- I really want to be able to do more intelligent things based on highlighted or hovered text, right now it seems like I only have line at a time/widget at a time granularity
- Ideally I would like to be able to copy text from everywhere, this seems difficult with the current gui library...
- It seems the window management options aren't going to be acceptable, probably emulating visual studio panels or similar would be better...
- I seem to have very little control over the keyboard input, people are reporting that key presses are registering multiple times/ or that key repeat is just too slow...

All of the GUI is done using the 'Dear ImGui' library. I think I might be hitting a limit of what I can do using it, so part of me wants to start exploring implementing some UI stuff myself (for which I have no experience). It may also be that I need to just look at how I'm using ImGui, and maybe I'm missing some implementation details... who knows...

Also a possible third option, is I could work on getting the customization/embedding API down... Right now HUMBUG has really two parts, the "core" and the "gui" I have been doing this purposefully for a while now, with the goal that you could use the core independently from the gui in case you wanted to make some automated testing tools, or editor integration or something like that... If I got the core api to a deployable state, then I could maybe could worry less about the GUI, as people could just address their own GUI issues.

So, in general, I'm very interested in what people think the priorities should be. Also any other comments are welcome of course.

P.S. The powers that be (*cough* Miblo *cough*) have decided that I should archive my streams on youtube. So you can look there if you are interested in past weeks.

P.P.S Again, Big thanks to testers, Thank you : )
Jeremiah Goerdt,
The watch window is a pretty big step. I'm still pretty far from a full-featured watch window myself. And I haven't even started the dive into gui... that'll be fun.

Are you at a point where you can use Humbug to debug Humbug?
David Butler, Edited by David Butler on
I haven’t actually tried to debug Humbug with Humbug. I will try that out next. I imagine there will be some inherent complexity with doing that. I’ll probably disable automatic hot code reloading for the outer most layer of Humbug, also probably need to figure out a way to separate the logging so I could differentiate between the two instances.

I imagine that it should be able to do it without any issues. I am to the point where I prefer Humbug over GDB by itself and I use Humbug to debug more complex stuff nearly every day for my day job. I still have to use the console for things, like for watchpoints, and other misc things, but Humbug has an integrated console so it’s really easy to go back and forth between using the console and the GUI. There are a couple things that are annoying, like not being able to copy text like you can in the terminal, and there is the occasional stability issue...
Jeremiah Goerdt,
Croepha
I am to the point where I prefer Humbug over GDB by itself and I use Humbug to debug more complex stuff nearly every day for my day job.


That's super cool. I'm jealous.
David Butler,
I really can't take too much credit, once properly massaged, GDB will take care of a lot of things for you.
Looking great, man!