0.8.3 contains a redesigned overlay mode that is more useful (by providing floating panels instead of a binary blocking and non-blocking mode) and additional startup parameters to utilize this overlay mode. There will still be a few minor fixes in the next updates but no major changes and the mode is now roughly working as intended, as always now compatible with all supported platforms.
In addition to this startup via the command line can now have persistent sessions (expression and breakpoint state) across restarts. The description of those new command line parameters and a small presentation of the new overlay mode will follow at later point. On Linux and Windows 7 overlay mode requires a running compositor. All other platforms (Windows 8-10 and macOS) should enforce this by default.
Next up for 0.9.x are two major goals. The first is to provide support for customized expression visualization, initially this will be used to support (non-continuous) linked lists and image data. The other is to better support C++. One line of C++ can easily contain lots of inlined content from various places, including but not limited to opaque containers. Anything that remotely resembles classic C++ (not to speak of modern C++) is currently not handled well by the debugger. If possible I also want to support partial debug information before 1.0 because for quite some time it is the default on Windows and supported is likely to be expected by a lot of people.
I will look into providing an overview and explanation of all the new features around the time 1.0 arrives.
* [Linux] Changed input handling to not process some mouse events that the window should not react to
* Improved stack unwinding
* [DWARF] Fixed a case where DW_AT_ranges would not use the correct compilation unit base address
(this broke locating the correct compilation unit on recent macOS clang builds)
* Added a --clearall startup parameter that clears all persistent sessions started from the command line
* [Linux] Fixed potentially triggering a xcb assertion when stepping over a call instruction in source mode
* Initial fix to support calling stack protected functions in expressions
* Added the ability to persist sessions started from the command line (--session)
. Expressions and breakpoints will be restored when the binary path matches with a previous one
. Optionally a custom name can be added after --session to utilize multiple sessions per binary
. Use --clear in combination with --session to clear the saved state
* Fixed a few cases where the position of the output window would not be restored correctly between restarts
* Fixed a crash when trying to display registers in the expression panel as ",mem"
* Redesigned overlay mode (overlay mode is meant to debug without fully dedicating a whole monitor or parts of a monitor for the debugger alone)
. Made fully compatible with Windows, Linux and macOS
. Overlay mode can be enabled in the configuration panel or using the command line switches "--overlay" and optionally a monitor position description
. Visual selection of the monitor that is used for the debugger overlay is possible using the configuration panel
. Moving and resizing of the movable panel containers for the debugger overlay is possible in the configuration panel,
changing position or size while using the debugger will be persisted on exit
. The debugger does not occupy the complete monitor anymore but instead the different panels are placed in separate movable windows
. All elements of the debugger are always on top, but interaction with anything behind a transparent area is possible without limitations
. Certain keybindings will be available as global keybindings even when the debugger elements don't have focus and will give focus to the debugger (see keybindings)
. All normal keybindings are available when the debugger has focus
. Full expression and breakpoints panels are only shown when the have focus, otherwise a smaller mostly non-interactive overlay is shown
* Added additional command line parameters to overlay mode
. optional argument to --overlay: Specifies which monitor to use using a description of the monitor location
. Format: origin[[+-][1-9]?[xy]]*
. Origin: May be one of the following special values
. self: The monitor on which the main debugger window would have been opened by the OS
. left/right/top/bottom: The left/right/top/bottom-most monitor
. [+-]1-9[xy]: Moves the currently selected monitor by +- 1-9 (1 if omitted) in the direction of x or y
* Close autocomplete dialog after adding a new breakpoint as intended
* Do not open the debugger when trying to debug a non-existing or unreadable file and print an error instead
* [PDB] Fixed using debug files with more than 255 module streams
* Added preliminary printing for signed chars with more than 1 bytes as integer representation
* Highlight the currently active preset for keybinding and theme