Window Detective 3.5.0
Microsoft Visual Studio C Runtime Library has detected a fatal error in Window Detective.exe.
Press Break to debug the program or Continue to terminate the program.
msvcr100.dll!crt_debugger_hook() Unknown Non-user code. Symbols loaded.
msvcr100.dll!call_reportfault() Unknown Non-user code. Symbols loaded.
msvcr100.dll!_abort() Unknown Non-user code. Symbols loaded.
msvcr100.dll!terminate(void) Unknown Non-user code. Symbols loaded.
Window Detective.exe!00bcc96b() Unknown No symbols loaded.
Steps to reproduce:
1. Find a 32-bit window.
2. Start capturing messages.
3. Focus the window and interact with it to generate lots of messages. The window's application becomes very slow on my system while message capturing is going on.
4. Once the window slows to a crawl, switch to Window Detective.
5. At this point, Window Detective should be non-responding. If not, go back to step 3 (and perhaps use another application to strain the CPU).
6. After a few seconds, the Windows non-responsive application dialog pops up with an offer to close or debug. By clicking debug, I obtained the above stack trace in Visual Studio 2017.
I suspect this is because Window Detective tries to access data from a window that has been destroyed.
Does it happen to you often?
The window being captured doesn't get destroyed as far as I've noticed.
It happens every time, I can reproduce the bug reliably.
Oh and I forgot to mention, my system is Windows 10 64-bit.
I have been able to reproduce the crash fairly consistently on Windows 10, and am now trying to debug.
Remote debugging didn't turn up anything useful, and my development machine is Win 7, so I can't use that. Going to be difficult to determine the cause :(
Would you find it helpful if I ran a debug build and sent a stack trace or a crash dump?
No, I can make a debug build myself. I just need to get the right debug dlls of Qt otherwise it won't run.
Ok, I think I know what's going on. I changed one of the names in data_types.xml ("uint" became "uint32") but I forgot to change it in the code. So it was trying to use a type that didn't exist.
I will fix this soon, but can I get you to do something to validate the fix?
Go to where Window Detective is installed (i.e. "Program Files") and open the data_types.xml file under the data directory. In it, near the top, you will see a bunch of lines that say "primitive". Look for the one that has name="uint32", copy that whole line and paste it on the line below, then change the copy to be "uint". Don't change anything else about the line.
Let me know if that fixes the problem for you.
Last edit: xtal256 2017-12-04
That seems to have solved the problem. I was unable to reproduce the crash after applying your fix.
Cool. I will release a new version with the fix shortly. You should revert the changes you made to the data_types.xml file now, the new version will be different.