304 posts / 1 project
Edited by x13pixels on Reason: typo in post title
A new version of RemedyBG,, is now available for immediate download. Changes include:

New Features
* Evaluate on hover. Can set the tooltip delay in Windows>Style and can optionally disable this feature altogether.
* A stack-overflow exception will now collapse repeated frames and show "Collapsed N frames" in the Call Stack pane. Can double-click collapsed frame or toggle this behavior via "Collapse Repeated Frames" context menu item.
* Adds "Format As" menu item showing relevant format specifiers for the selected watch(s).
* Added $err pseudo-variable for the last error value set by SetLastError for the current thread
* Added $handles pseudo-variable which shows the number of handles allocated by the process
* Added $tid and $pid pseudo-variables for thread and process IDs
* Added ",d" decimal format specifier
* Added ",hr" format specifier for displaying an HRESULT or Win32 error code
* Adds process ID (optionally) to status text. Can be toggle via status text's context menu.
* Information about module load/unload events and thread exit codes are now written to the Output window
* Added "Read Only" checkbox to memory window's options
* Added "Copy Address" to memory window's context menu
* Allow breakpoint on either nominal entry point (WinMain, main, etc...) or entry point as defined in the PE header.
* Can now run to a filename/line via the command line driver (see run-to-cursor in documentation)

* Lazily load function table entries. This helps improve performance when stepping over calls that load many DLLs (e.g., Direct3D initialization).
* Use high-contrast color for collapsed panes to make them easier to find.
* Adds error message when trying to index non-array/pointer type.
* Properly handle device removed scenarios (Direct3D).
* Line numbers have been added back to the call stack display.
* Render the frame rather than show black while resizing.
* Implements PgUp/PgDown in panes (previous these keys mapped to what is Home/End now)
* Added binary formatting of enum values
* We now alphabetically sort text file names in the drop-down menu.
* Adds Ctrl+C hotkey to Output Window to copy contents to clipboard
* Rearranged menu in Output Window so "Clear" is less likely to be accidently clicked.
* Adjusted vertical position of lock icon in embedded font
* Added more descriptive error message in the case CreateProcess fails
* No longer count disable processor BPs against total number use
* Adds "Move Up / Move Down" menu items in watch window to aid discoverability of this existing feature.
* Show arrow next to processor breakpoint that was hit.
* Run-to-cursor operation will now show yellow breakpoint symbol in text/disassembly
* No longer initiate editing of address in memory window if a cell is being edited.
* Double-click, not single-click, now used to initiate memory window editing.
* An error in a breakpoint's condition is now more clearly presented.
* Allow adding a breakpoint at an address without having to open/navigate to the address in the disassembly window.

Bug Fixes
* Fixed lookups of static, global TLS variables.
* Fixes the case in which a breakpoint is added on the same line as the run-to-cursor location before the run-to-cursor operation completes.
* String summaries are now culled to 64-chars for non-nested previews and 32-chars otherwise.
* Addressed problems where double-clicks were not registering on certain touchpads.
* Fixed a problem where the corresponding text window would not be brought to the front when stepping through disassembly.
* Fixed a case where the session would be considered modified immediately after opening.
* Fixes a problem where keyboard input was ignored in the auto-created watch expression in certain situations.
* Now properly sign-extend bitfield values.
* Fixed the editing of bitfield values in watch.
* An exception is now considered "handled" after using set-next-statement
* Fixed so that Ctrl+Alt+W no longer deletes a watch expression when changing focus to another watch window.
* Modifying condition on an existing processor breakpoint was broke in previous release. This has been fixed.
* Fixed dereferencing union type when using '.' rather than '->'
* Left arrow was unintentionally changing to focus to last row in some cases. This has been fixed.
* Fixed reported case where cursor position on ASM source goes to PROC declaration rather than first instruction.
* Fixed problem terminating app when breakpoint present in multithread code.
* Fixed bug when run-to-cursor is executed on the same line
* Fixed hang adding a function breakpoint to a module containing only a single function.
* Fix for memory window so navigate to an address occurs even when reevaluation of an expression is identical to the previous address.
64 posts
Programmer at NASA GSFC
Enormous QOL improvements here. Thanks so much!
Simon Anciaux
1335 posts
Thanks for the update.
235 posts
Awesome update. Having the hover ability is definitely a quality of life improvement. Thank you!
304 posts / 1 project

Jesse, Simon, and Jason: you're welcome!

A follow up release with some additional bug fixes is now available for download as

  • Fixes potential crash in stack walk code introduced in 3.6.0 (The Sandvich Maker)
  • Evaluate on hover will now consider array indexing when picking the expression to evaluate (datamite)
  • Fixes conditional breakpoints added at program startup (datamite)
  • AltGR+[^A-Z] can now be used to initiate an edit in the watch window (seventh-chord)
  • Fixed expression generated for Add Watch / Send to Memory Window for dereferenced pointers (JensWallgren)
1 posts

Thank you so much for this update! Although there is one thing added in it that I would like to be able to turn off which is:

  • Information about module load/unload events and thread exit codes are now written to the Output window

This causes a huge amount of module load and thread exit spam in my win32/dx11 application which I would like to be able to turn off.

304 posts / 1 project
Replying to Potato (#25105)

Potato: I considered this oversight a bug and went ahead and put out a patch to address it. The new release is available as and contains options, accessible from the Output window's context menu, for toggling the display of module load/unload, thread exit, and process exit messages.


304 posts / 1 project

A small patch release with a few new features snuck in is now available for download (

New Features

  • Added "-g" and "-q" command-line arguments which can be used to automatically launch target application and terminate RemedyBG. @matias^
  • Added remove-all-breakpoints to command-line driver. @cancel


  • Replaced Ctrl+Alt+* keyboard shortcuts to eliminate problems with international keyboard layouts. Ctrl+Alt+[0-9], used to switch saved layouts, is now simply Ctrl+[0-9]. Replaced keyboard shortcuts for changing window focus to use chorded "Ctrl+L, Ctrl+*" combos, instead.
  • User mode DEP violation at 0x0 will now show location of exception in text window. @greensleevless

Bug Fixes

  • Fixed a case where consecutive line numbers in symbol information, as emitted by Clang but not MSVC, required multiple step-over operations. @EladCiuraru
  • Better handling for invalid/corrupt line information in PDBs. @Zilarrezko
  • Fixes case where output window is not scrolled properly when the window is not active.
  • Fixed hidden windows showing up in tab bars after reloading a layout in certain cases.