LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Petru_Tarabuta

DAQmx errors should contain the whole call chain. Improvement to the 'DAQmx Fill In Error Info.vi'

Status: Declined

I've created Bug 3024754 for this, since it's arguably more of a bug report than a feature request.

Problem: When an error occurs inside some DAQmx VIs, the error source (the string component of the error cluster) does not contain the call chain. This means that it is impossible to know the location where the error occurred based on looking at the error message.

 

Real-world example: The other day I encountered DAQmx error -200477 on a cRIO-9045 that uses DAQmx to acquire data from several different C-Series modules. The real-time application that was running on the cRIO contained an error handling module, which correctly logged the error to file. I saw the following when using PuTTY and the linux 'cat' command to display the contents of the error log file.

 

1.png

 

 

 

 

 

 

Notice that the error message does not contain any information as to where in the codebase this error actually occurred. This meant that I had to spend a few minutes inspecting the moderately large codebase before identifying the likely location of the error. Running subsequent tests I was able to confirm that that was the location of the error. The error was soon understood and fixed.

 

Root-cause: The root-cause of the issue (lack of call chain information) is the DAQmx Fill In Error Info.vi. In the real-world example above the error was occurring inside the DAQmx Timing (Sample Clock).vi.


4.png

 

 

 

 

 

 

The block diagram of this VI is seen below:

2.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Any LabVIEW errors generated inside that VI are generated by the DAQmx Fill In Error Info.vi. This VI is, of course, essentially a simple translator between the return type (I32) output of the Call Library Function Node and a native LabVIEW error. That VI has an unwired input named depth whose default value is 1. This means that only the last link of the call chain is inserted into the error message.

 

3.png

 

 

 

 

 

 

 

 

 

Solution: Always insert the complete call chain inside all DAQmx error messages.

4 Comments
Christina_R
Active Participant
Status changed to: Declined

I've created Bug 3024754 for this, since it's arguably more of a bug report than a feature request.


Christina Rogers
Principal Product Owner, LabVIEW R&D
Petru_Tarabuta
Active Participant

Thanks. I agree that it can be considered a bug.

 

To confirm, does Bug 3024754 cover only DAQmx Timing (Sample Clock).vi?

 

A quick search for the DAQmx Fill In Error Info.vi shows it is called at least 212 times inside DAQmx VIs. All these locations should be investigated, and if needed, fixed (full call chain should be displayed).

 

Petru_Tarabuta_0-1739819209347.png

 

Christina_R
Active Participant

I'm not sure what R&D will decide to do, but I agree that it's a more extensive problem than DAQmx Timing (Sample Clock).vi. I put a link to this thread in the Bug.


Christina Rogers
Principal Product Owner, LabVIEW R&D
Petru_Tarabuta
Active Participant

Thanks!