Bill,
The first thing I would try and get a handle on is whether the program is crashing on a common operation each time. Since the time elapsed between crashes varies so greatly, it doesn't really help in the process of narrowing things down. In this case, I would try and implement a log file for your program. Basically, place file write operations at various points in your program. They will serve as "checkpoints". When the program crashes, open the file and see what the last checkpoint that was passed. You will then be able to zoom in on the offending code if it is in fact the same piece of code causing the problem each run.
The drwtsn32.log file is an appended file, therefore the latest event is at the end of the file. Within Notepad, Scroll to
the bottom and search up for 'Application' . Somewhere beneath 'Application' is PID (process ID) this value is the process that was running when the Error was generated. Scroll down to check the list of processes and locate that number. In your file, this process is HeatTreatMain.e.exe.
Look for 'FAULT ->' and this is the place within the processes where the application error occurred. The new section shows the stack, however the function names are usually NOT correctly identified by the Dr. Watson.
In the vast majority of cases the drwtsn32.log file does not contain sufficient information in order to debug the failure. It only gives you an idea about the failure. It is the user.dmp file that might lead to a solution. The utility only creates the Dr. Watson log file (drwtsn32.log). You have to instruct the Dr. Watson to create the crash dump (user.dmp). Launch the utility by typing drwtsn32 in the Start»Run. You are going to get a new window similar to the one attached below.
Refer to the linked document for more information.
How Do I Debug a Non-Reproducible Crash?Zvezdana S.