codeclap 0.5.5 is here.
It is no 0.5.0, but something better ;).
In addition to the established Linux build there are now also working builds for macOS and Windows. The macOS build is correctly signed to be used as a debugger and should work out of the box without any self-signing chaos.
The Windows build is the most recent and had a few teething problems but should work ok now. But it definitely received the least amount of testing.
Also codeclap is now available on https://codeclap.itch.io/codeclap for a very moderate price which will provide access to all 0.x and 1.x builds.
For now the Patreon is no more and everyone who has contributed in the past has received a free download key.
The interface is still not the most intuitive but a switchable help overlay may help the confusion a little bit.
Here is a little overview of the current state in video form which is also linked on the itch.io page:
For the sake of completion here is the CHANGELOG with the most important changes from the last build.
There is one known issue that could potentially cause a freeze of the debugger but I hope that a workaround for that one is working for now until I have fixed it the correct way which unfortunately is platform specific yet again and will take a bit.
* Fixed a crash because of a bigger than expected memory copy when incorrectly using a wrong value returned by the OS memory read
* [pdb/DWARF] Fixed mapping functions that start directly at a mapped region beginning into the virtual address space
* Fixed a regression that would change the expression focus instead of the autocomplete selection when a autocompletion overlay is active
* Display "Tab" key correctly in shortcut string representations
* Fixed some sites calling the wrong longjmp implementation and faulting
* Workaround: Do not try to change the execution state of a thread that is currently in a syscall
* Added a few small improvements to the cursor tracking behavior which should ensure that the point of execution is always visible
* Warn and allow for different actions when trying to set conflicting keybindings
* Fixed a regressions that would incorrectly show an old copy of the rbp, rsp or rip register when used in expressions
* Added a small builtin help overlay dubbed "training wheels" mode which shows some help labels directly within the UI
* [Linux/macOS] Fixed a regression that would cause the pause and continue all threads buttons to fail
* [Windows] Fixed starting the debugger directly using the command line and passing a binary and optionally a function to run to
* [Windows] Fixed a potential issue that would stall the debugger trying to execution expressions in the debuggee
* [macOS] Fixed a bug that would not correctly exit the application when run from command line with a parameter to directly start the debugger
* [macOS] Force mouse tracking on render when it has not been activated before
* [Windows] Fixed an issue that would incorrectly use the working directory for configuration files instead
of the program directory
* Changed the way inlined functions are displayed (panel instead of a window)
* Implemented more DWARF ops to support debug information from optimized code
* Fixed reading DW_FORM_block for DW_TAG_const_value
* Fixed a few inconsistencies when scrolling or moving the cursor in the debugger view
* [Windows] Fixed referencing the wrong memory anchor after multiple starts
* [Windows] Implemented additional pdb specs to handle optimized code
* [Windows] Some changes for handling S_LOCAL, S_REGREL32, S_BPREL32 and S_REGISTER in optimized builds
* [Windows/macOS] Fixes dropping binaries onto the configuration window
* pdb/DWARF Fixed iterating in/over functions without children
* Fixed allocating an excessive amount of memory when converting source file encodings
* Improved stepping over source lines in optimized code
* [Linux/macOS] Changed simple debugging loop to event queue
* [macOS] Fixed possible hang when debuggee output waits for processing
* Added a set of test cases for the core debugging functionality
* Initialize expression results with 0 to avoid unwanted breakpoint stops when the expression execution fails
* Added tests to ensure basic debugger functionality is working
* [DWARF] Fixed a failure to correctly resolve a function if an address from a nearby compilation unit has been active before
* In the top panel highlight the currently active/selected thread
* Fixed a bug that startup configurations would not be persisted correctly
* [Windows] Fixed a bug that would skip calls that have to be executed on the main debugging thread
* [Windows] Changed the way processes are terminated to avoid locking windows in an infinite thread spawning loop
* Fixed a bug for pop instructions when generating the stacktrace
* [DWARF] Fixed a rare bug that would point source line references to wrong instruction addresses
* [DWARF] Fixed an off-by-one that would wrongly map addresses at the compile unit boundary end into the wrong compile unit
* Changed some const-sized memory allocations to dynamic allocations
* [macOS] Suspend all threads when an unexpected signal occurred
* Explicitly show information when an exception has occurred