LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

What causes NIDSTerminateApp call in LabVIEW application?

I have an application which periodically crashes with an exception c0000005 error. It is running on 2 different machines and has occurred on both machines (Windows 2000).

The Dr Watson log file shows very little information about the thread that crashes (it seems that it is pretty seriously trashed) but the back trace includes a call to NIDSTerminateApp. This is exported by nids.dll (the DataSocket library) so it leads me to think the problem may be there. However, I don't know if this is a response to an earlier problem (hence "terminate") or the cause of the problem.

I will include the log file below.

Ciao
Bill
0 Kudos
Message 1 of 4
(2,762 Views)
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.
0 Kudos
Message 2 of 4
(2,762 Views)
Hi Zvezdana

Thanks for the comments. However, my application is running several parallel loops that would make the use of logging somewhat difficult. Also, the log files would be huge as the loops do a tremendous amount of processing each second. It would also slow the application down too much and I would like to leave that as a last resort.

Dr. Watson is set to create the user.dmp file on my machine. However, I don't have any experience with dump files on Windows. I have some experience with core files on UNIX, but I don't know what tools to use for Win 2000. The link that you provided did not go anywhere for me (I will try it again later incase it was a temporary problem).

Thanks
Bill
0 Kudos
Message 3 of 4
(2,762 Views)
Bill,
You don't need to log the files after each loop iteration, but maybe every 30 min. Also, you can start with logging data from only one loop at a time.
I am attaching the web page as a word document.
Zvezdana S.
0 Kudos
Message 4 of 4
(2,762 Views)