A native, user-mode, multi-process, graphical debugger.
MIT License
Bot releases are visible (Hide)
This is a fairly major release consisting of many large passes over many parts of the codebase. This simultaneously means you might notice some cool new things, and you might notice some accidental regressions or bugs! If you notice a new issue, please don't hesitate to post about it, so it can be quickly addressed.
Here is a list of the most major upgrades or changes:
Disassembly
view now supports disassembly intermixed with source code, if debug info and source code is present.Watch
and Watch
-like views now support multi-row selection and multi-cursor editing.Watch
views now support reordering.arch
parameter will show autocompletions for architectures; a fmt
parameter for a bitmap
view rule will show autocompletions for 2D texture formats, and so on).Watch
view, the expression will now update immediately as you type.bitmap
view rule can now be popped out into a standalone tab, which offers a more full bitmap viewing UI. This is currently incomplete, but already offers better inspection controls for bitmaps, with a zoomable canvas view. This same pattern will be used in the future for other more sophisticated view rules.%appdata%/raddbg/logs
, which can help provide extra information in case of issues.HRESULT
numerical codes. (#202)Published by ryanfleury 7 months ago
This release consists of a lot of behind-the-scenes work, primarily focused on improving the PDB -> RADDBGI conversion speed for larger projects, and cleaning up and simplifying many lower level debugger systems, to have a more solid foundation for further features and improvements moving forward.
Before this release, the PDB -> RADDBGI conversion process was completely single-threaded, and was not usable for large PDBs, and especially not in projects with several large PDBs. There are still plenty of performance improvements on the table, and we expect this to continue to improve, but this release already includes some major improvements. With our 8GB test PDB (the largest that we currently have), on a 64-core development workstation, conversion time decreased from ~11 minutes to ~30 seconds with the changes in this release. This should massively improve the debugger's usability in many cases where it was previously not usable.
As a result of the above progress, as well as all of the aforementioned work on the lower level debugger systems, a lot of code was either majorly changed or rewritten. If you experience new issues with this release that you didn't experience with older versions, it'd help out a lot if you let us know by submitting an issue.
EDIT: The new PDB -> RADDBGI converter had introduced some regressions, mostly related to C++ feature support. I've since fixed these. Since these are small fixes, but quite important for regular debugger usage for many people, I wanted to package up a new build with these fixes included. That being said, I didn't think these fixes alone justified an entirely new release with a new version number. So I've uploaded an updated build under raddbg.zip
. The original build has been renamed to raddbg_0.9.9a.zip
.
A more comprehensive list of the major improvements and fixes follows:
Disassembly
view now works for dynamically allocated and generated code, and correctly hot-reloads as the underlying memory changes. (#106)Disassembly
view now correctly supports keyboard navigation, copy/paste, and the toggle-watch-expression-at-cursor command.Disassembly
views.Watch
view were committed when the selected row was not visible. (#133, #174, #176)Watch
views. (#165)Published by ryanfleury 8 months ago
This release includes the following improvements and fixes:
Go To Name
and Function Breakpoint
commands.Types
, Procedures
, Globals
, and Thread Locals
views. These are automatically-filled Watch
-style views that display all known types, procedures, globals, and thread-locals (respectively) in the selected module's (determined via the selected thread) debug information. These support fuzzy filtering, to filter down their generally large contents. Fuzzy filtering can be applied by typing in any of these views, or by explicitly running the "Filter" command.Watch
and Watch
-style views.Watch
and Watch
-style views.Watch
, Locals
, Registers
, Breakpoints
, Watch Pins
, Targets
, Scheduler
, Modules
, and Exception Filters
views. The fuzzy filtering may be applied identically to the aforementioned Types
/Procedures
/etc. views.Watch
view. These allow the assignment of expressions to a label. Given the syntax x = expr
, in all other Watch
rows, the when x
occurs in the expression, its evaluation will be equivalent to that of expr
. x
must always be some identifier (that does not collide with any local variables, global variables, or types), and expr
can be any valid expression.Watch
and Watch
-like views./JMC
MSVC option. (#36)CreateThread
and subsequent naming of threads with the CREATE_SUSPENDED
flag. (#127)Published by ryanfleury 9 months ago
This release includes the following improvements and fixes:
OutputDebugString
-heavy programs. (#123)Published by ryanfleury 9 months ago
This release includes the following improvements and fixes:
const
) pointer and reference types. (#83)(MyStruct *)0
). This will be extended in the future.OutputDebugString
output. (#96).h
and .c
files.Published by ryanfleury 9 months ago
This release includes the following improvements and fixes:
Foo::X
when inside of Foo::Function
can now be done by evaluating X
. (#55)Published by ryanfleury 9 months ago
This release includes the following improvements and fixes:
list
, omit
, and only
view rules.mainCRTStartup
and wmainCRTStartup
entry point symbol names. (#61)Published by ryanfleury 9 months ago
This release includes the following improvements and fixes:
__fastfail
debug events. This solves the issue of a failed assertion appearing as if the target application was hanging indefinitely.Published by ryanfleury 9 months ago
This release includes the following improvements and fixes:
Known issues:
%appdata%/raddbg/default.raddbg_user
and %appdata%/raddbg/default.raddbg_profile
do not exist (e.g. during running for the first time), this version has a bug which causes two default debugger windows to open instead of one. This bug has been fixed in 0c497abba67f5606a1f992a741ec702284a6e976.Published by ryanfleury 9 months ago
This release includes the following fixes:
SetThreadDescription
API. (#3)Known issues:
%appdata%/raddbg
folder.Published by ryanfleury 9 months ago
Initial alpha release.