Friday, June 21, 2013

Investigating the 6.6.0 crashes

After the changes for the NaroOccCore.dll were done, I updated the code for the main Naro project - everything compiles and the application starts, quickly crashing with an error about 'NaroOccCore.dll' not being found. This is a frequent error and it can mean not only that the dll wasn't found, but that there was an error loading one of the dlls that is referenced from it.

One of the best tools to investigate this is the Process Monitor, but unfortunately it didn't report any missing dll. All dlls it tried to load were eventually found in one of the paths set in the environment variables and the file was loaded:

Before the program crashed, all files were loaded and there were no files that weren't found.
The next tool I used was Depency Walker (the 32-bit version, as NaroOccCore.dll is built for Win32) and this is the result:

I have rebuilt TKernel.dll and am now using dumpbin (though the Visual Studio Command Prompt) to analyze the exports and check why we have the dll errors. Only TKernell has such errors, but contains the main classes and most other dlls reference it.