LabVIEW的内部错误

简介: LabVIEW的内部错误

LabVIEW的内部错误


碰到了一个LabVIEW的错误信息"Failure in XXX.c / XXX.cpp at line YYY"。发生了什么,如何修复它?


解答:


可以通过访问LabVIEW内部错误支持网页来找到专门的信息。 LabVIEW的内部错误是什么? 一个LabVIEW的内部错误告诉我们某个条件的存在阻止了LabVIEW继续执行。通常,LabVIEW执行到它的内部代码某些点时,会判断某些条件是否是正确的。在通常情况下,这些条件都能被满足,LabVIEW就能处理它们。如果它们不正确,LabVIEW就会报告一个内部错误。LabVIEW报告这个内部错误,然后关闭。否则的话,可能会破坏内存中的VI。有许多原因会引起内部错误。由于这个原因,了解导致错误的操作是很有帮助的,可以在今后发布的LabVIEW版本中,修改LabVIEW,来解决这些问题。对于LabVIEW 7.0及以上版本,当LabVIEW重启时,会遇到一个调查内部错误的窗口。通过它,可以发送这个错误连同它的错误日志给NI就简化了报告错误的过程,因此任何被发现的问题都可以被研究,在今后的发布版本中被解决。可以通过设置Tools>>Options>>Debugging>>Prompt to investigateinternal errors on startup来允许和禁止这个窗口的出现。 对于解决LabVIEW内部错误的一般建议


在KnowledgeBase或Developer Exchange discussion论坛中搜的错误信息。


安装最新的LabVIEW更新。大多数的LabVIEW更新,都可以从驱动和更新库中找到。


联系显卡硬件或打印机的生产厂家,索取最新的驱动。LabVIEW是一个图像高密集的软件,即使其它的应用程序工作正常,LabVIEW在显卡驱动上也可能遇到其它程序不会遇到的问题。


删除所有的临时文件。对于Windows 95/98,临时文件目录为C:\Windows\Temp,Windows NT/2000的话,是C:\WINNT\Temp。


宏编译(Masscompile)VI(File » Mass Compile 或 Tools » Advanced » Mass Compile,取决于LabVIEW版本)。如果从一个较早的LabVIEW版本更新到一个新的版本,可能会有一些较老的VI没有更新。宏编译会更新这些VI到目前的LabVIEW版本。


试着在另外一个操作系统上运行程序。知道这个问题是否与平台有关对于解决问题很重要的。

2981460bacb06e718f19a25e2f234780.png

编辑


添加图片注释,不超过 140 字(可选)



对于解决LabVIEW内部错误的专门建议


包括image.cpp,image.c,window.cpp,drawmgr.c,color.c,panel.c,panelsup.c,textmgr.c或者fontmgr.c 的错误在编辑时常会发生,当然也可能在打印时发生。


建议:


这些LabVIEW的内部错误通常可以通过更新显卡驱动和打印机驱动到最新的版本来解决。联系硬件生产厂商并安装最新的驱动。一个确认内部错误是否与驱动有关的简单方法是把代码移植到另一台机器上(希望是不同的一组驱动程序),看看是否这个错误还存在。如果这个问题是与打印机有关的话,试试另一台打印机。


某些显卡驱动也支持“加速”模式。我们已经发现使用非加速模式往往可以消除错误。对于Windows 95/98,右击我的电脑图标,选择“属性”。在性能选项中,点击图像按钮,更改硬件加速(例如如果设置的是“全速”, 那就降低一个或两个层次)。对于Windows 2000/NT,在您桌面上右击,选择“属性”。在设置页面中点击高级按钮,进入排错标签页。


在Windows中,由操作系统提供的标准VGA驱动是非常稳定的。可以试着使用这个驱动,来代替专门为显卡所写的驱动,如果错误消失了,那说明很可能这个问题是和您的显卡供应商提供的驱动有关。


尝试调整一下驱动程序使用的颜色面板(比如说256色,高色,真彩色)。错误可能只会发生在这些模式中的一种。而且,改变代表屏幕区域的分辨率(象素数)。比如,从1024 x 768的显示模式到800 x 600象素显示。


如果在打印的时候发生错误,试着在LabVIEW中调整打印选项Edit » Preferences » Printing。


包含memory.cpp,allocate.cpp的错误是由于对外部代码的不正确调用(例如,调用一个不正确分配内存的DLL或CIN)。


建议:


可参考LabVIEW手册中使寻求解释和内存管理的正确用法(一套对于外部代码内存分配,管理和释放的独立程序平台)。


参考在我们网站上的这些可用资源:


建议:


禁止在LabVIEW中使用多线程。Edit » Preferences » Performance and Disk (或者 Tools » Options » Performance and Disk,取决于LabVIEW的版本)不选中 "Run with Multiple Threads"。


保证DLL是可重入的(Reentrant)。在Call Library Function上鼠标右击,从弹出的菜单中选择“配置”。有一个带有两个选择的下拉菜单:"Runin UI Thread" 和 "Reentrant",选择"Reentrant"。


LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序


上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系我们。

相关文章
|
5天前
|
安全 网络安全 数据安全/隐私保护
远程桌面连接出现了内部错误怎么解决?
远程桌面连接出现了内部错误怎么解决?
|
5天前
LabVIEW中忽略特定错误
LabVIEW中忽略特定错误
12 0
|
5天前
|
存储
LabVIEW代码生成错误 61056
LabVIEW代码生成错误 61056
|
5天前
|
SQL 存储 数据库
LabVIEW编程LabVIEW开发使用LabVIEW访问Microsoft Access
LabVIEW编程LabVIEW开发使用LabVIEW访问Microsoft Access
|
5天前
|
JSON 监控 安全
LabVIEW测试和调试Web服务
LabVIEW测试和调试Web服务
15 1
|
5天前
|
移动开发 大数据 Windows
LabVIEW通过VISA读取或写入时出现超时错误-1073807339
LabVIEW通过VISA读取或写入时出现超时错误-1073807339
|
8月前
|
存储
调试实战——使用windbg调试崩溃在ole32!CStdMarshal::DisconnectSrvIPIDs
使用windbg调试崩溃在ole32!CStdMarshal::DisconnectSrvIPIDs