用於除錯 LabVIEW 記憶體損壞的工具

更新 Dec 12, 2025

環境

軟體

  • LabVIEW

在使用 LabVIEW 時,我們經常會遇到記憶體損壞的問題,而其原因在沒有額外工具的情況下往往無法追蹤。若確實發生記憶體損壞,並且我希望進行除錯,我可以使用此知識庫中提到的工具來協助加快根因的定位。

啟用 Guard Bytes

在 LabVIEW 的 INI 檔案中添加 LVGuardBytes=check。這將使 LabVIEW 在每次記憶體配置的前後放置一段已知的位元組序列。如果這些序列被覆寫,LabVIEW 將當機並產生傾印檔案。此檢查會在記憶體重新配置或釋放時進行,因此可能在偵測到覆寫之前就發生當機。

 

使用 Alternate Memory Manager

在 LabVIEW 的命令列中添加 LV_USE_MALLOC=1。這將使 LabVIEW 載入我們不同版本的 mgcore DLL,該 DLL 包含 LabVIEW 的記憶體管理器(多個版本已包含在安裝資源目錄中)。預設使用 smartheap,而此選項改用 C 的 malloc/free。由於這些記憶體管理器採用不同的資料結構和配置方案,切換可能會影響記憶體損壞的表現方式,並提供更多上下文以判斷損壞發生的位置。

 

用於 LabVIEW 64 位元的命令:

"C:\Program Files\National Instruments\LabVIEW <YYYY>\LabVIEW.exe" -- LV_USE_MALLOC=1

用於 LabVIEW 32 位元的命令:

"C:\Program Files (x86)\National Instruments\LabVIEW <YYYY>\LabVIEW.exe" -- LV_USE_MALLOC=1

其中 <YYYY> 表示您目前 LabVIEW 的年份版本。