0.6.0 has arrived and brings improvements to all platforms. On Linux currently your mileage may vary because of ptrace limitations but so far I haven't encountered any problems.
Across the board on all platforms the stepping behavior should feel more snappy because of less synchronizations between the debuggee and executing debugger expressions. This also removes all potential stalling issues from these locations.
Command line usage has been extended to be more useful in general as well as enabling the "break at" functionality to also understand file:line syntax.
Last but not least there are also initial fixes to make codeclap work with current versions of clang (which it may already but has not been tested enough until 0.7/0.8).
Next up until 0.7.0 will be smaller fixes and more importantly a larger look at usability.
There are a few known issues regarding expressions when debugging multi-threaded applications with more than one stopped thread for which fixes may or may not make it into 0.7.0.
Changelog for 00.06.00
- Moved the expression evaluation from the main loop to its own thread (partially on Linux because of ptrace limitations)
- Fixed a mistake that would interrupt/stop the remote debugger owned thread when interrupting/stopping all threads
- Removed as many synchronous waits from the main debugger thread as possible
- [Windows] Fixed a crash when opening a binary without any IMAGE_DIRECTORY_ENTRY_DEBUG entry
- [Linux] Do not open codeclap when passing "-h"
- Do not show an active line and a stacktrace for threads that are not in stopped state
- Fixed a regression that would try to run to a unavailable function when using "Break At Function"
- [Linux] Fixed a wrong X11 call when receiving a drop event that could not be processed
- [Linux] Added support for XdndTypeList, this fixed drag and drop support for some sources
- Changed some actions to only actually trigger when the thread is in a stopped state
- Use matching cursors for resize handles and text fields
- [DWARF] Handle debug_line version 4 for non-VLIW architectures. This fixes line mapping for clang emitted debug information
- Only show scopes that belong to the corresponding thread in the scope combobox next to expressions (Behavior before 0.5.x was to switch the thread to the correct thread which was confusing, 0.5.x did nothing for thread-foreign scopes)
- Changed some button icons (Watchpoints: eye instead of heart; Breakpoint location: crosshair instead of eye)
- Changed "Break at Function" configuration option to also work with file:line syntax
- Added additional command line parameters (-h for a short overview)
- [Windows] In case of "-h", attach to the parent console to display the help output before exiting
- [macOS] Implemented passing environment values to the debuggee
- If no working directory has been specified, use the directory from which the debugger has been executed
- Fixed a bug that would try to refresh expressions from a scope that is not the currently active one in an endless loop (if during expression execution the value of rbp, rsp or rip was used)