適用于每個LabVIEW開發(fā)者的巧妙調(diào)試技巧
作者:Omar Mussa,程序架構(gòu)師和專業(yè)服務經(jīng)理, NI聯(lián)盟伙伴JKI
Justin Goeres,程序架構(gòu)師和產(chǎn)品市場經(jīng)理, NI聯(lián)盟伙伴JKI
成為LabVIEW漏洞修復高手
如果您經(jīng)常使用NI LabVIEW軟件,當軟件不能按照預期的情況運行時,您可能會有一個自己的調(diào)試技巧和技術工具箱。 這些技巧和技術有些是常用的,而剩下的可能是您自己摸索出來的。
圖1.巧妙的調(diào)試方法能夠清除漏洞
我們與JKI的LabVIEW程序架構(gòu)師 ( Certified LabVIEW Architects, CLA ) 以及LabVIEW社區(qū)的朋友進行了交流,向他們學習一些快速識別、隔離和修復漏洞的“絕密”技巧。我們了解到以下幾個巧妙的調(diào)試技巧。
利用探針
探針是LabVIEW調(diào)試的第一個也是較簡單的工具,但它們卻是非常強大的工具。您可極其輕松地將探針置于線路上,在查找問題過程中不斷獲取信息。 以下是探針的幾個功能:
保存連線值功能
LabVIEW開發(fā)環(huán)境中的保存連線值功能經(jīng)常會被忽略。 當您啟用某個VI的連線值保存功能時,LabVIEW將自動存儲該VI框圖上每根連線的較后一個值。 然后,將光標懸停在任一連線上,即使該VI未運行,探針工具也將出現(xiàn)提示信,顯示該連線較后一個值。
圖2.保存連線值按鈕就在“燈泡”圖標旁邊
自定義探針,無需編寫任何代碼
運用LabVIEW自定義探針,您無需編寫任何代碼就可創(chuàng)建強大、復雜的調(diào)試工具。 例如,您可在“自定義探針”>>“控件”>> “波形圖”中創(chuàng)建顯示任意數(shù)字連線的先前值的“歷史探針”。 這可幫助您發(fā)現(xiàn)您正在探究的數(shù)據(jù)的模式或趨勢,而無需編寫特殊的探針代碼。
圖3. 使用波形圖探針顯示簡單數(shù)字連線的歷史值
從LabVIEW工具網(wǎng)絡獲取自定義探針
借用他人創(chuàng)建的探針來擴展您的工具箱。 SAPHIR在LabVIEW工具網(wǎng)絡上提供了一系列免費的自定義LabVIEW探針。 您只需下載安裝VI軟件包管理器 (VIPM)社區(qū)版(也是免費的)、搜索ViBox,再通過幾次單擊就可安裝探針。
如果您正在使用LabVIEW 2011,您還可通過單擊LabVIEW入門指南窗口的“查找LabVIEW附加工具...”從LabVIEW工具網(wǎng)絡上獲取ViBox。
圖4.使用VIPM安裝SAPHIR自定義探針
調(diào)用時掛起
許多LabVIEW程序架構(gòu)師甚至不知道LabVIEW具備該項功能!罢{(diào)用時掛起”功能可將執(zhí)行掛起,使您可以進行以下任一或所有操作:
1. 在VI運行之前隨意更改VI的控件值。
2. VI返回調(diào)用程序時隨意更改顯示件的值。
3. 重復運行VI,而無需將執(zhí)行返回至調(diào)用程序。
4. 完全跳過VI執(zhí)行,返回至調(diào)用VI。
圖 5. 在子VI節(jié)點設置窗口中,選擇“調(diào)用時掛起”功能
對于調(diào)用時掛起功能,NI做了簡要說明,見此處。 然而,熟悉該功能的較佳方法還是親自動手實踐。
未連線的前面板控件和顯示件
為FIRST(崇尚發(fā)揚科學技術)機器人競賽團隊推薦了一項技術,這項技術對于專業(yè)的LabVIEW開發(fā)人員也非常有用
Ben建議在VI中添加前面板控件或顯示控件,但并不與連線板連接。 這些控件和顯示件與“調(diào)試”輸入或輸出工作方式類似,您可在測試時對其進行手動控制。 這可使您更容易在應用中生成偶然或極端事件,而無需繁多的支持或仿真代碼的寫入。
您還可以在已建應用程序中使用這些調(diào)試控件和顯示件,前提是LabVIEW應用程序生成器包含了VI前面板。
參閱LVMastery.com上的介紹,進一步了解Ben建議的調(diào)試子VI。
執(zhí)行跟蹤
如果其他方法都失敗的情況下,有時您所能做的只有逐步跟蹤代碼。 遇到此類問題時,您可通過幾種方法在LabVIEW內(nèi)進行執(zhí)行跟蹤。
較明顯的方法是使用LabVIEW中內(nèi)置的“高亮顯示執(zhí)行”功能,也稱為“燈泡”。 如果說探針是LabVIEW調(diào)試的首要工具,燈泡則位列第二。 但是,如果碰到復雜或是時間相關的漏洞,您則可選擇其他更有效的工具。
圖6. 執(zhí)行跟蹤功能比燈泡功能更多
跟蹤磁盤或內(nèi)存
啟動執(zhí)行跟蹤的一個簡單方法是在其中一個子VI中記錄一個連線值。 您可編寫一個簡單的VI,將該值記錄到文件中,或甚至可創(chuàng)建一個自定義探針來顯示連線的歷史值。 通常通過這樣一個簡單的跟蹤您就可收集足夠的信息來幫助您找到漏洞的原因。
NI LabVIEW桌面執(zhí)行跟蹤工具包
如果要調(diào)試一個大型的高度并行應用程序,則包含NI開發(fā)者套件 2011的LabVIEW桌面執(zhí)行跟蹤工具包就是您進行LabVIEW代碼分析的“利器”。 它可提供關于正在運行的應用程序的各種信息,包括詳細的內(nèi)存分配和再分配、事件生成、由代碼定義的自定義信息。 Austin LabVIEW程序架構(gòu)師論壇的創(chuàng)建人之一Fabiola De la Cueva指出該工具包可用于調(diào)試已崩潰的應用程序,因為它是獨立于LabVIEW之外運行的。
圖7. 手動執(zhí)行追蹤具有風險
專業(yè)的LabVIEW開發(fā)人員很慶幸,因為LabVIEW桌面執(zhí)行跟蹤工具包已包含在NI開發(fā)者套件2011之中,不會產(chǎn)生額外的費用。
單元測試
測試驅(qū)動開發(fā)(TDD) 是一種軟件工程技術,可幫助您從頭創(chuàng)建更好的代碼,同時它也是幫助您調(diào)試現(xiàn)有代碼的一個有效工具。
在TDD中,當您發(fā)現(xiàn)應用程序存在漏洞時,調(diào)試流程的第一個步驟就是創(chuàng)建一個可重現(xiàn)漏洞并導致測試失敗的單元測試。只有到那時候,您才確實可以開始嘗試修復問題。 如果單元測試通過,則表明您已清除了該漏洞。
圖8. 你在哪里測試代碼?
這種漏洞修復方法需要費點時間,但是相比其他較不精確的方法,它具有以下幾個優(yōu)點:
1. 單元測試具有可追溯性,可完整顯示漏洞的發(fā)生過程以及您如何將漏洞隔離
2. 您或其他開發(fā)者可隨時輕松驗證或重新驗證您的修復,而無需記住激活漏洞的詳細信息。
3. 單元測試可在您的項目中與其他測試一起自動執(zhí)行,因此漏洞如果再次出現(xiàn),您可以立即知曉。
針對單元測試有兩個主要的LabVIEW附加工具,TDD方法可以與另一個一同使用。 查看JKI的免費VI測試儀LabVIEW附加工具或參閱Eli Kerry的LabVIEW軟件工程指南,進一步解LabVIEW單元測試框架工具包,它已包含在NI開發(fā)者套件之內(nèi)。
相關閱讀:
- ...2011/12/25 09:08·適用于LED TV的背光源解決方案
- ...2011/07/11 10:26·一種適用于大范圍高亮度LED電路
- ...2011/06/01 12:08·一種適用于多個系統(tǒng)的設計:再塑超聲波成像系統(tǒng)設計
- ...2010/05/05 10:17·適用于工業(yè)能源采集的技術
- ...· “芯創(chuàng)杯”首屆高校未來汽車人機交互設計大賽報名正式啟動
- ...· 探秘第二屆衛(wèi)藍山鷹“創(chuàng)新·共享”試驗技術論壇!
- ...· “2018中國半導體生態(tài)鏈大會”在江蘇省盱眙舉行
- ...· 新主題新規(guī)劃,CITE 2019瞭望智慧未來
- ...· 從汽車到工廠,TI毫米波傳感器致力于創(chuàng)造更智能的世界
- ...· 意法半導體(ST)、Cinemo和Valens在CES 2018展上聯(lián)合演示汽車信息娛樂解決方案
- ...· 北京集成電路產(chǎn)業(yè)創(chuàng)新發(fā)展高峰論壇即將在京召開
- ...· 三菱電機強勢出擊PCIM亞洲2017展
- ...· Efinix® 全力驅(qū)動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產(chǎn)品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產(chǎn)品開發(fā)及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產(chǎn)設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統(tǒng)順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統(tǒng)中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統(tǒng)成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術
- ...· 數(shù)據(jù)采集終端系統(tǒng)設備
- ...· 簡儀科技踏上新征程
- ...· 易靈思® 宣布 AEC-Q100 資質(zhì)認證和汽車系列產(chǎn)品計劃
- ...· 易靈思® 宣布擴充高性能 鈦金系列™ FPGA 產(chǎn)品 鈦金系列產(chǎn)品擴充至包含 1M 邏輯單元的 FPGA
- ...· 易靈思® 宣布Trion® Titanium 在臺積電 (TSMC) 16納米工藝節(jié)點流片
- ...· TI杯2019年全國大學生電子設計競賽頒獎典禮在京舉行
- ...· BlackBerry QNX虛擬機獲得全球首個汽車安全完整性等級(ASIL) ‘D’認證
- ...· 威馬汽車選擇BlackBerry助力下一代汽車