启用 Guard Bytes
在 LabVIEW 的 INI 文件中添加 LVGuardBytes=check。 这将使 LabVIEW 在每次内存分配的前后放置一段已知的字节序列。如果这些序列被覆盖,LabVIEW 将崩溃并生成转储文件。此检查在内存重新分配或释放时进行,因此可能在检测到覆盖之前就发生崩溃。
使用备用内存管理器
在 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 的年份版本。