Hi,
Great effort, keep it up!
I've been playing around with 0.1.7.0 a bit and here's a list of things I've noticed.
Before getting to that though:
would you consider making a github project for bug/feature tracking? I assume that would be easier for you (but also for us since searching for things would be more convenient than looking through all the forum posts)
Or maybe
handmade.network has a bug tracker feature for that?
test app used:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | #include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
__declspec(noinline) void dummy( int val )
{
printf( "val: %d\n", val );
}
int main()
{
CRITICAL_SECTION cs;
InitializeCriticalSection( &cs ); // comment this line out for bug #1 repo
EnterCriticalSection( &cs );
printf( "Entering loop\n" );
for ( ;; )
{
int i = rand();
dummy( i );
::Sleep( 10 );
}
LeaveCriticalSection( &cs );
return 0;
}
|
bugs:
-> start load test app -> hit F5 -> hit break -> dis asm/callstack windows are empty. then hang/crash when trying to shift+f5
-> add support for /DEBUG, the default in VS2017 (not just /DEBUG:FULL)
-> "main" function name missing in callstack window
-> "type" in watch window should be the actual type. int val in dummy is shown as s32 (now I can guess in this case that it's a 32-bit signed int, but that's not the type in the code, nor do I have a typedef for s32 anywhere in the code. if there are more typedefs that you use it might not be obvious for all types what they mean)
-> program output is missing in Output window (it only shows the remedybg output it seems)
-> debugging the sample program, the values for 'i' and 'val' seem to be wrong in the watch window
-> when the source window is open I can't single step in the disassembly anymore (even if i highlight/click into that window)
-> after a while (when trying to single step in disasm after the issue above), hitting F10 and F11 will eventually "resume" the program; control->break will then show an empty disasm window (and eventually freeze remedy)
-> after F11 into a function, hitting F10 the first time (in the source window) makes the yellow arrow vanish (and sometimes frantically jumps around the source window -> try stepping into printf a few layers deep and you should notice it)
features:
-> recent session list
-> keyboard re-binding (specifically I'd love to bind "Control->Break" to a key)
-> automatically open disassembly window when app crash is detected
-> symbol server support (MS symbols...)
-> option for single thread stepping (aka, F10/F11 only resumes the current thread and step there)
-> not sure if bug or feature but: I can't jump between functions in the callstack
-> search functionality in all/source/disasm/watch windows
-> register highlighting (when clicked on/selected) in disasm window
-> option to hide code bytes in diasm
-> disasm window should have an input field where I can write/paste an address and disasm will jump there
-> enable select/copy in (most) windows (e.g. i want to copy the address from the disasm window and paste in the memory window)
-> when entering an address in the mem window, either start the window text at that address (not aligned), or highlight the byte of the address jumped to
-> allow editing in register/watch/memory window
-> (super convenience): "nop" an asm instruction in the disasm window
-> allow to change format/type of register values (int, float, ptr/hex...)
-> in the breakpoint window, allow breakpoints to be deleted with a keyboard key (del) not just the button
-> (super minor): the first column in watch/threads (the one with the yellow arrow) should be fixed size even when expanding/shrinking columns or the window to always fully show the arrow, no less or empty space after
-> resolve variable/function names in the disasm window (where possible)
-> support for pseudo variables in watch windows (e.g.: @TIB)