|| 1.99 out of 5
Archived: LabVIEW Internal Errors (Failure in XXX.c / XXX.cpp at line YYY)
This document has been archived and is no longer updated by National Instruments
Primary Software Version:
Primary Software Fixed Version:
LabVIEW Development Systems
I received a LabVIEW
Failure in XXX.c / XXX.cpp at line YYY
message. What happened and how do I fix it?
This article pertains to LabVIEW 8.5 and earlier. What is a LabVIEW internal error?
A LabVIEW internal error provides an indication that a condition exists that prevents LabVIEW from continuing execution. Generally, LabVIEW reaches points in its internal code where it checks to determine if certain conditions are valid. Under normal circumstances, these conditions are indeed met, and LabVIEW is equipped to handle them. If they are not valid, LabVIEW reports an internal error (DAbort). LabVIEW reports the internal error and shuts down because to do otherwise would be to risk corrupting any VIs in memory. There are many causes of internal errors. For this reason, it is helpful to know the steps that lead to the error so that LabVIEW can be modified to account for this condition in future releases. In LabVIEW 7.0 or later, when LabVIEW is restarted you will be prompted to investigate the internal error. By doing so you send National Instruments the error along with the error log. This simplifies the process of reporting errors so that any problems found can be studied and resolved in future releases. To enable or disable the prompt to investigate errors, select Tools»Options»Debugging»Prompt to investigate internal errors on startup
. General suggestions for troubleshooting LabVIEW internal errors
Specific suggestions for troubleshooting LabVIEW internal errors
- Search the KnowledgeBase and/or the Developer Exchange discussion forums for your error message (linked below).
- Install the latest update to LabVIEW. Most LabVIEW updates are available from our Drivers and Updates Library (linked below).
- Contact the manufacturer of your video hardware or printer and request the latest driver. Even if other applications work correctly, LabVIEW is graphics intensive and may expose problems in video drivers that other programs do not.
- Delete all files in your temporary directory. For Windows 95/98/XP/Vista, the temporary directory is C:\Windows\Temp; for Windows NT/2000 it is C:\WINNT\Temp.
- Mass compile your VIs (File»Mass Compile or Tools»Advanced»Mass Compile, depending on your version of LabVIEW). If you upgraded LabVIEW from an earlier version, you may have some older VIs that were not updated. Mass compiling updates VIs to the current version of LabVIEW.
- Try running your application on another operating system. It is vital for troubleshooting to know if the problem is platform-specific (i.e., the problem may only exist on Windows 95, 98, NT, 2000, XP, Vista, etc.).
- Errors involving image.cpp, image.c, window.cpp, drawmgr.c, color.c, panel.c, panelsup.c, textmgr.c, or fontmgr.c commonly occur when editing, but may also occur when printing.
- These LabVIEW internal errors are most often fixed with the latest video/printer driver. Be sure to contact your hardware manufacturer and install the latest driver. An easy way to determine if your specific LabVIEW internal error is "driver-related" is to move your code to another machine (and hopefully a different set of drivers) and see if the error persists. If the problem is printer related, try another printer.
- Certain video drivers also support "acceleration" modes. Using a non-accelerated mode often eliminates the error. On Windows 95/98, right-click the My Computer icon and select Properties from the shortcut menu. On the Performance tab, click the Graphics button and change the Hardware Acceleration (e.g., if it is set to "Full", lower the setting a notch or two). On Windows 2000/NT, right-click the Desktop and select Properties from the shortcut menu. On the Settings tab, click the Advanced button and go to Troubleshooting.
- On Windows, the standard VGA driver provided by the operating system is very stable. Try using this driver in place of the specific one written for your video hardware. If the error is eliminated, there is likely a problem with your vendor-provided video driver.
- Try adjusting the color palette your driver uses (e.g., 256 color, high color, true color). The error may occur only in one of these modes. Also, change the resolution (number of pixels) to represent the screen area; e.g., change from a 1024 x 768 display to an 800 x 600 pixel display.
- If the error occurs while printing, try adjusting the printing options in the LabVIEW Edit»Preferences»Printing menu.
- Errors involving memory.cpp, allocate.cpp can be attributed to incorrect calls to external code modules (e.g., calling a DLL or CIN that incorrectly allocates memory).
- In LabVIEW 7.1 or earlier, refer to the Memory Manager section of Chapter 4, Programming Issues for CINs, of the Using External Code in LabVIEW manual (linked below) for explanations and proper usage of the memory manager (a set of platform independent routines for allocating, manipulating, and deallocating memory from external code modules). In LabVIEW 8.0 or later, refer to the Memory Manager topic in the LabVIEW Help (linked below) for more information about the memory manager.
- Errors involving thread.cpp occur most frequently when making a DLL (dynamic link library) call in a multithreaded environment.
- Disable multithreading in LabVIEW. Select Edit»Preferences»Performance and Disk (or Tools»Options»Performance and Disk, depending on your version of LabVIEW) and uncheck Run with Multiple Threads.
- Make sure that your DLL is reentrant. Right-click on the Call Library Function Node and select Configure from the shortcut menu. There is a pulldown menu with two options: Run in UI Thread and Reentrant. Select Reentrant.
- Errors involving fpsane.cpp are associated with insane objects.
Note: For all cases, if you are able to reproduce this behavior, please contact NI Support and report the problem so we can investigate the cause, and fix the product.
- Look at the error log and determine if the problem appears to be with a component (wires, controls, indicators, etc.) on the front panel or block diagram. Check the following KnowledgeBase on insane objects for more information
- If you can load the VI, use a binary search to identify which component is causing the problem. Remove that component and add the component back in.
- If you can't load the VI, restore a good backup copy and reimplement your changes. If you this is not possible, contact NI Support and request they investigate to see if they can repair the VI.
- If upgrading and you can't load the VI in a new version of LabVIEW, use a binary search (modify in old version, load in new version) to identify which component is causing the problem. Remove that component, load the VI in the new software, add the component back in.
If you still encounter a LabVIEW internal error after following these suggestions, contact National Instruments Technical Support (linked below) and attach an example VI that demonstrates the crash, so that our Applications Engineers can more easily help diagnose the problem. Please include as many details as possible for us to recreate the issue.
Related Links: LabVIEW Help: Using External Code in LabVIEW LabVIEW Help: Memory Manager Tutorial: An Overview of Accessing DLLs or Shared Libraries from LabVIEW Knowledge Base 1F398NU0: What Does an "Insane Object" Error Mean and What Should I Do? Products and Services: Request Support KnowledgeBase 2IEG8TB5: Problems and Image.cpp Line Errors Using Matrox 400 Series Video Cards
Attachments: - cpp Reporter.zip