如何成为LabVIEW漏洞修复高手?掌握这些调试技巧就行!

如何成为labview漏洞修复高手?
如果你经常使用ni labview软件,当软件不能按照预期的情况运行时,你可能会有一个自己的调试技巧和技术工具箱。这些技巧和技术有些是常用的,而剩下的可能是你自己摸索出来的。
图1.巧妙的调试方法能够清除漏洞。(brian searle摄)
我们与jki的labview程序架构师(certified labview architects, cla)以及labview社区的朋友进行了交流,向他们学习一些快速识别、隔离和修复漏洞的“绝密”技巧。我们了解到以下几个巧妙的调试技巧。
1. 利用探针
探针是labview调试的第一个也是最简单的工具,但它们却是非常强大的工具。您可极其轻松地将探针置于线路上,在查找问题过程中不断获取信息。以下是探针的几个功能:
保存连线值功能
labview开发环境中的保存连线值功能经常会被忽略。当您启用某个vi的连线值保存功能时,labview将自动存储该vi框图上每根连线的最后一个值。然后,将光标悬停在任一连线上,即使该vi未运行,探针工具也将出现提示信,显示该连线最后一个值。
图2.保存连线值按钮就在“灯泡”图标旁边。
自定义探针,无需编写任何代码
运用labview自定义探针,您无需编写任何代码就可创建强大、复杂的调试工具。例如,您可在“自定义探针”>>“控件”>> “波形图”中创建显示任意数字连线的先前值的“历史探针”。这可帮助您发现您正在探究的数据的模式或趋势,而无需编写特殊的探针代码。
图3. 使用波形图探针显示简单数字连线的历史值。
从labview工具网络获取自定义探针
借用他人创建的探针来扩展您的工具箱。saphir在labview工具网络上提供了一系列免费的自定义labview探针。您只需下载安装vi软件包管理器 (vipm)社区版(也是免费的)、搜索vibox,再通过几次单击就可安装探针。
如果您正在使用labview 2011,您还可通过单击labview入门指南窗口的“查找labview附加工具...”从labview工具网络上获取vibox。
图4.使用vipm安装saphir自定义探针。
2. 调用时挂起
许多labview程序架构师甚至不知道labview具备该项功能。“调用时挂起”功能可将执行挂起,使您可以进行以下任一或所有操作:
●在vi运行之前随意更改vi的控件值。
●vi返回调用程序时随意更改显示件的值。
●重复运行vi,而无需将执行返回至调用程序。
● 完全跳过vi执行,返回至调用vi。
图 5. 在子vi节点设置窗口中,选择“调用时挂起”功能。
对于调用时挂起功能,ni做了简要说明,见此处。然而,熟悉该功能的最佳方法还是亲自动手实践。
3. 未连线的前面板控件和显示件
为first(崇尚发扬科学技术)机器人竞赛团队推荐了一项技术,这项技术对于专业的labview开发人员也非常有用
ben建议在vi中添加前面板控件或显示控件,但并不与连线板连接。这些控件和显示件与“调试”输入或输出工作方式类似,您可在测试时对其进行手动控制。这可使您更容易在应用中生成偶然或极端事件,而无需繁多的支持或仿真代码的写入。
您还可以在已建应用程序中使用这些调试控件和显示件,前提是labview应用程序生成器包含了vi前面板。
参阅lvmastery.com上的介绍,进一步了解ben建议的调试子vi。
4. 执行跟踪
如果其他方法都失败的情况下,有时您所能做的只有逐步跟踪代码。遇到此类问题时,您可通过几种方法在labview内进行执行跟踪。
最明显的方法是使用labview中内置的“高亮显示执行”功能,也称为“灯泡”。如果说探针是labview调试的首要工具,灯泡则位列第二。但是,如果碰到复杂或是时间相关的漏洞,您则可选择其他更有效的工具。
图6. 执行跟踪功能比灯泡功能更多。
跟踪磁盘或内存
启动执行跟踪的一个简单方法是在其中一个子vi中记录一个连线值。您可编写一个简单的vi,将该值记录到文件中,或甚至可创建一个自定义探针来显示连线的历史值。通常通过这样一个简单的跟踪您就可收集足够的信息来帮助您找到漏洞的原因。
ni labview桌面执行跟踪工具包
如果要调试一个大型的高度并行应用程序,则包含ni开发者套件 2011的labview桌面执行跟踪工具包就是您进行labview代码分析的“利器”。它可提供关于正在运行的应用程序的各种信息,包括详细的内存分配和再分配、事件生成、由代码定义的自定义信息。austin labview程序架构师论坛的创建人之一fabiola de la cueva指出该工具包可用于调试已崩溃的应用程序,因为它是独立于labview之外运行的。
5. 单元测试
测试驱动开发(tdd) 是一种软件工程技术,可帮助您从头创建更好的代码,同时它也是帮助您调试现有代码的一个有效工具。
在tdd中,当您发现应用程序存在漏洞时,调试流程的第一个步骤就是创建一个可重现漏洞并导致测试失败的单元测试。只有到那时候,您才确实可以开始尝试修复问题。如果单元测试通过,则表明您已清除了该漏洞。
这种漏洞修复方法需要费点时间,但是相比其他较不精确的方法,它具有以下几个优点:
单元测试具有可追溯性,可完整显示漏洞的发生过程以及您如何将漏洞隔离
您或其他开发者可随时轻松验证或重新验证您的修复,而无需记住激活漏洞的详细信息。
单元测试可在您的项目中与其他测试一起自动执行,因此漏洞如果再次出现,您可以立即知晓。
针对单元测试有两个主要的labview附加工具,tdd方法可以与另一个一同使用。查看jki的免费vi测试仪labview附加工具或参阅eli kerry的labview软件工程指南,进一步解labview单元测试框架工具包,它已包含在ni开发者套件之内。
获取更多labview学习资料可加入vip:工程师你可能命里缺我
福利时间!labview机器视觉基础知识大礼包等你来拿,没有套路,只要加助理小姐姐(微信:18123773580)就可以免费领取哦,快点加小姐姐拿资料吧!
(扫码加助理微信领取资料)
资料包内容如下:

三星电子将于4月在韩国市场发布首款5G智能手机
电源变压器简易设计
一江春水向东流
三维数据的问题何时才能解决呢?
iPhone8什么时候上市?iPhone8最新消息:iPhone8即将上市,iPhone8摄像头升级,或搭载杀手级AR技术
如何成为LabVIEW漏洞修复高手?掌握这些调试技巧就行!
2020年我国工业互联网将会呈现出怎样的发展趋势
基板的测试及评估
Real World CTF技术论坛将启 极客嘉年华重磅来袭
颜值与音质兼得,南卡N2S真无线蓝牙耳机体验报告测评
电气防火安全用电运维管理系统和设备方案
电动汽车BMS技术模拟与数字系统的比较
如何才能延长iPhone手机的电池寿命
三星已经成韩国科技的代名词,韩国却有意采购华为产品,究竟为何
健身用什么蓝牙耳机比较好,运动圈最流行的四大运动耳机品牌
原位高速X射线影像技术揭示送粉激光沉积气孔机理
“老辈”中芯张、王、杨已各霸一方主掌半导体项目
数据力量用嵌入式AI定义未来生活
这五款国产手机比iphone 7要好,看完我笑尿了
苹果将削减mini型号产量为Pro让路