30.09.2020, 01:26
I think the command line arguments might actually be the problem. (Maybe?)
I can run the 32 bit avsviewer.exe and it works as it should. But if I try to run it in x32dgb, the command line arguments don't pass, even though x32dbg's log reports that they did, and it produces a similar 0xc0000005 access violation error that avsviewer64.exe does when it's run normally.
When avsviewer.exe (32 bit) runs normally outside of a debugger, the command window looks like:
So why does the command window show that weird crap instead of the command line arguments in x32dbg? Why the 0xc0000005 access violation?
With avsviewer64.exe, I can't run it (0xc0000005 access violation crash), and the command window looks like:
It doesn't show "Importing E:\USER\viewer\test1.avs" like avsviewer (32 bit) does. But I know it's reading the .avs file because it produces errors if there are errors in the script (wrong file name, etc.). The command window + crash above is what happens when I think it gets to the point of trying to load the video file.
When I try to run avsviewer64.exe through x64dbg, it does NOT produce a 0xc0000005 access violation (which it does when it's run normally), but it DOES produce similar issues with passing the command line arguments through:
It stops without crashing and stays like that in that "Running" state. The command window seems to show there was some problem passing the command line arguments through and somehow only "\" got through. But x64dbg's log shows that the command line arguments were parsed (it turned \ into \\ for some reason), and the avsviewer64.exe gui even loaded and reports that it received the location of the avs script. Why would the GUI show the correct location of the avs script, but the command window show an error and tried to only import "\"? Why no longer a 0xc0000005 access violation crash? But it still doesn't load the video?
So to summarize: both the 32 and 64 bit viewers in the debuggers have a last entry of ole32 before the 32 bit one crashes with 0xc0000005, and the 64 bit one hangs. Outside of the debugger the 32 bit one runs normally, but the 64 bit one crashes with 0xc0000005.
I know debugging info is usually useless but I posted it on the off chance it might tell you something.
I guess I finally give up!
I can run the 32 bit avsviewer.exe and it works as it should. But if I try to run it in x32dgb, the command line arguments don't pass, even though x32dbg's log reports that they did, and it produces a similar 0xc0000005 access violation error that avsviewer64.exe does when it's run normally.
When avsviewer.exe (32 bit) runs normally outside of a debugger, the command window looks like:
So why does the command window show that weird crap instead of the command line arguments in x32dbg? Why the 0xc0000005 access violation?
With avsviewer64.exe, I can't run it (0xc0000005 access violation crash), and the command window looks like:
It doesn't show "Importing E:\USER\viewer\test1.avs" like avsviewer (32 bit) does. But I know it's reading the .avs file because it produces errors if there are errors in the script (wrong file name, etc.). The command window + crash above is what happens when I think it gets to the point of trying to load the video file.
When I try to run avsviewer64.exe through x64dbg, it does NOT produce a 0xc0000005 access violation (which it does when it's run normally), but it DOES produce similar issues with passing the command line arguments through:
It stops without crashing and stays like that in that "Running" state. The command window seems to show there was some problem passing the command line arguments through and somehow only "\" got through. But x64dbg's log shows that the command line arguments were parsed (it turned \ into \\ for some reason), and the avsviewer64.exe gui even loaded and reports that it received the location of the avs script. Why would the GUI show the correct location of the avs script, but the command window show an error and tried to only import "\"? Why no longer a 0xc0000005 access violation crash? But it still doesn't load the video?
So to summarize: both the 32 and 64 bit viewers in the debuggers have a last entry of ole32 before the 32 bit one crashes with 0xc0000005, and the 64 bit one hangs. Outside of the debugger the 32 bit one runs normally, but the 64 bit one crashes with 0xc0000005.
I know debugging info is usually useless but I posted it on the off chance it might tell you something.
I guess I finally give up!