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 : )