RemedyBG 0.1.6.0

RemedyBG 0.1.6.0 has been released on itch.io.

* Reworked watch window user interface code. This includes support for keyboard controls.
* Watch window structure/pointer dereferencing and array indexing
* If the PDB that is specified in the image (EXE/DLL) is not found on disk, then we scan the
image's directory for the first (and most likely only) PDB with a matching GUID and use that
instead.
* Removed ImGui's assertions from a release configuration. This fixes a dialog box that pops up if
the configured font cannot be found on disk.
* Text windows are now reloaded upon change.

Note that this is the first version that requires a minimum payment to download. If, for some reason, you've already made a donation and cannot download the latest release please email me and I will send you a key.

--
George

Edited by x13pixels on Reason: Initial post
Posted a smaller, out-of-band, release, 0.1.6.1, to fix a reported crash. I also slipped in a change to support high DPI monitors.
Hi,

I've just tried 0.1.6.1 and I crash 100% as soon as I hit a breakpoint.
Either starting with F10 or setting a BP on main and F5 results in a division by 0.

Is there anything I can/should do to help you figure out what's going on? Since I don't have the symbols for it I don't know which function is causing the issue, however the assembly surrounding the crash is:

1
2
3
4
5
6
7
8
33 D2                xor         edx,edx  
8B C1                mov         eax,ecx  
F7 F3                div         eax,ebx   <-- div by 0, 100% for me  
44 8B C2             mov         r8d,edx  
44 8B CA             mov         r9d,edx  
48 8D 14 92          lea         rdx,[rdx+rdx*4]  
48 03 D2             add         rdx,rdx  
49 83 3C D3 00       cmp         qword ptr [r11+rdx*8],0  


The executable I was using is a simple hello world.

1
2
3
4
5
6
7
#include <stdio.h>

int main()
{
    printf( "Hello World\n" );
    return 0;
}


My current PC is on Win10 version 10.0.16299.

cheers!

ps: I've also tried 0.1.6 afterwards and I'm facing the same crash.
direbroom: I will take a look. Thanks for the information.
The assembly was enough. Thanks.

It looks like this is a case where Visual Studio is generating a partial PDB file (/Zi vs. /Z7 compiler switch, maybe). We've loaded up the partial PDB but it doesn't contain any useful symbols. The divide by zero is from a mod we are doing in the hash table used for symbol look ups.

I've added a catch for this case so it doesn't crash.

--
George
You gave me an idea and I fiddled around with the compiler/linker settings.

Turns out it was a linker setting:
If I link with "/DEBUG:FULL" or no debug info it works irregardless of the compiler flag. If I use any other debug info flag ( "/DEBUG" or "/DEBUG:FASTLINK" ) I get the crash.

Thanks for looking into this!

cheers

ps: now that I have a working setup I have a minor feature request:
F10/F11 should immediately break at the entry point/the first asm instruction (they seem to be doing the same as F5 at startup)
direbroom: F10/F11 will be fixed in next drop for non-canonical entry points (e.g., main, WinMain, etc.).
Is the source code included with the purchase?
Hey there. Here is some stuff I noticed playing around with 0.1.6.1:
- If there is enough stuff in the output, it allways jumps to the bottom even if you scroll it up.
- There is some problem stepping into functions that you do not have the source code to, (eg VirtualAlloc or FreeConsole are the ones I tested). It gets into an infinite loop.
- opening a void** (i.e. a HANDLE) in the watch window crashes the program.

Some other more "feature-like" stuff:
- right now it seems that you can't step into an executable that you do not have the source code to, this might be related to the other observation, that F10 seems to do the same thing as F5 for start up.
- the page up/ page down for the memory widget should snap to the top/ bottom so that you can view memory along a page boundary more easily.

That's all. Cheers and thanks for doing this.
Small feedback:
- Alt GR should not be treated as alt. On my layout Alt GR + space is the combination for underscore and I use underscore in nearly every identifier. In the watch window it changes the focus to the tabs as soon as I release space so it's hard to type anything. And it's harder then necessary to comeback to the edit field using only the keyboard.
- When double clicking on an expression to start editing it, it would be nice to be able to also click on the line to place the cursor.
- When I press Alt or Alt GR when in another windowed application, RemedyBG still get the messages, and the UI is updated which is distracting (tabs lights up).
- The new breakpoint button reads "New..", it's missing one dot.
@alexpana: The source code is not included in the purchase.
Recyrillic

- If there is enough stuff in the output, it allways jumps to the bottom even if you scroll it up.


I'll get that corrected. Thanks!

Recyrillic

- There is some problem stepping into functions that you do not have the source code to, (eg VirtualAlloc or FreeConsole are the ones I tested). It gets into an infinite loop.


Looking at this now.

Recyrillic

- opening a void** (i.e. a HANDLE) in the watch window crashes the program.


Noticed this as well and have fixed. Next release will be this Saturday latest.

Recyrillic

Some other more "feature-like" stuff:
- right now it seems that you can't step into an executable that you do not have the source code to, this might be related to the other observation, that F10 seems to do the same thing as F5 for start up.


Fixed for next release. Will now jump to entry point as specified in the PE header.

Recyrillic

- the page up/ page down for the memory widget should snap to the top/ bottom so that you can view memory along a page boundary more easily.


Now on the list. Appreciate the feedback!
mrmixer

- Alt GR should not be treated as alt. On my layout Alt GR + space is the combination for underscore and I use underscore in nearly every identifier. In the watch window it changes the focus to the tabs as soon as I release space so it's hard to type anything. And it's harder then necessary to comeback to the edit field using only the keyboard.


Sorry about that. I'll get that fixed shortly.

mrmixer

- When double clicking on an expression to start editing it, it would be nice to be able to also click on the line to place the cursor.


Now on the TODO list.

mrmixer

- When I press Alt or Alt GR when in another windowed application, RemedyBG still get the messages, and the UI is updated which is distracting (tabs lights up).


I'll get that corrected.

mrmixer

- The new breakpoint button reads "New..", it's missing one dot.


Thanks much.