RemedyBG 0.3.7.0

A new version of RemedyBG, 0.3.7.0, is available for download. Changes include:

New Features

  • Added a new type of format specifier for formatting arrays of structures
  • Allow lifting string, memory, and table expressions into their own, independent windows. A zoom button on the "Value" header will appear in a watch window when one of these types of expressions is selected. Closing the expression's window will result in that expression being returned to the watch window (rather than deleting it altogether).

Improvements

  • Added Ctrl+C / Copy menu item to allow copying the call stack to the clipboard
  • Automatically disable Windows debug heap.
  • Normally, RemedyBG will automatically reload a file when a change is detected. However, there are reported cases where this detection does not work as expected (e.g., a mounted WSL filesystem). Added a Source File | Reload menu item to force reloading a source file from disk.

Bug Fixes

  • Now ensure the restored window is visible on screen (e.g., shutting down on one monitor and reopening on a smaller monitor with smaller dimensions)
  • Fixed computation of array element addresses for non-int sized enums.
  • Fixes detection of asan shadow memory when exception occurs in a DLL.

Thanks.

I haven't used the new feature much, but here is some quick feedback.

  • The zoom button position in the watch panel is not where I would expect. I was expecting it to be on the line next to the "lock" icon. It being next to the column name and only appear if the correct item is selected doesn't feel great to use (for the few minutes I tried it).
  • Not being able to edit the expression of "zoomed" items without closing them might be annoying. It may be useful to keep them in the watch panel to be able to edit them.
  • It seems that the no debug heap value is not set by default for me (OpenGL init still takes a long time). If I add it in the environment manually OpenGL takes less time to initialize.
  • It would be nice to have better error message for the array formatting specifier. For example argv, argc { __index, $ } display "Format specifier for specifying number of elements does not apply to this type." Which wasn't clear to me. I needed to use ; instead of ,. Also the error message doesn't wrap. What would be nice (if possible) is to have a compile error style message:
// Format specifier for specifying number of elements does not apply to this type.
argv, argc { __index, $ }
~~~~~~~~~~~~~~~~~~~~~~^
  • The table display isn't resizable. It would be nice to have (for string and memory too).

Thanks for the feedback Simon!


Replying to mrmixer (#26197)

Follow up release with some improvements / bug fixes, 0.3.7.1:

Improvements

  • Added context menu items for enabling/disabling breakpoints in a text window
  • Now specify initial size of zoomed watch expressions to avoid super small/large windows
  • Moved icon for zoomable watch expressions to the applicable row. Also, the expression and value will now remain in the watch window while zoomed.

Bug Fixes

  • Fixed evaluation of sizeof(T *) when T is a non-primitive type
  • Fixed array evaluation that was inadvertently broke in 0.3.7.0
  • Fixed case where _NO_DEBUG_HEAP environment variable wasn't being added when expected

I appreciate everyone's feedback!


Edited by x13pixels on