调试东西是任何一种程序开发环境都必须供给的功用,它们能够显著地进步程序员的开发功率。LabVIEW作为一种图形化程序设计言语的IDE东西(一起也是一门共同的言语),天然需求考虑为工程师供给适合于图形化言语调试的东西。
事实上,LabVIEW并没有规则哪些东西被划分为调试东西,哪些东西被划分为其它的东西。这种边界和界说是比较含糊的,在实际运用中,咱们能够把辅佐程序员更精确、方便地定位代码履行和Bug的东西统称为“调试东西”。
LabVIEW首要的调试东西坐落东西栏,如图 1所示。从左至右依次是:
- Run:运转,单击它会直接运转当时的VI,方便键Ctrl + R。
- Run Continuously:接连运转。
- Abort Execution:间断运转,单击它会中止当时运转的VI。
- Pause:暂停运转。
- Highlight Execution:高亮履行东西,单击它程序会变慢,反映整个数据流运转的进程。
- Retain Wire Values:单击它会保存当时衔接线上的值(这一点在后面描绘)。
- Start Single Stepping:单步履行,此刻程序往前运转一个节点。
- Step Over:越过当时的节点。
- Step Out:跳出单步履行。
- Step Into:进入到某一个子VI中履行。
其间(1)~(4)是常用的东西,用来操控VI的运转、暂停和中止;而(7)~(10)是其它的程序设计言语的IDE环境均具有的,用法也没有其它的差异。因而,本文将侧重介绍LabVIEW中特有的程序调试东西或许办法。
图 1 LabVIEW的东西栏
1.1过错列表(Error List)
LabVIEW作为一种图形化的编译型言语,其编译的进程是在后台主动完结的(无需程序员手动编译),编译后的方针代码也存储在vi文件中。因而LabVIEW会“实时地”判别代码是否能够正常运转。当无法正常运转时,将弹出Error List对话框,列出当时VI承继中所有的过错,如图 2所示。
对话框分为3个部分,别离表明产生过错的VIs、产生过错的节点和过错简略表述、过错的详细描绘。双击某一个VI能够直接翻开该VI,双击某个过错节点能够直接定位到该节点节点。
图 2 Error List对话框
一般运用该办法能够快速地定位产生过错的VI或节点,并依据过错描绘进行修正。有时候会呈现LabVIEW的“运转”箭头是断开,而Error List对话框中却没有显现任何过错的状况。这是因为LabVIEW在内存中的已编译代码无法履行,只需求把当时的VI从头强制编译即可,办法是在单击“运转”箭头的一起按住Ctrl键(LabVIEW 8.6.1之前的版别可能是Ctrl + Shift键)。
1.2VI承继和调用(VI Hierarchy)
LabVIEW答应而且鼓舞子VI的调用,因而VI之间存在着调用与被调用联系,LabVIEW将这种联系以图形的办法表明出来,称之为“VI承继”(动态调用的VI将不会显现其调用与被调用的联系)。挑选View>>VI Hierarchy菜单项,弹出VI之间的联系图,如图 3所示。
图 3 VI Hierarchy
从该图中能够迅速地看出当时VI的子VI以及被调用的VI之间的联系,双击某个VI的图标能够快速地翻开该VI前面板。
【小技巧】
双击某个VI图标的一起按住Ctrl键能够直接翻开VI的后面板。
当LabVIEW暂停在某个VI中时,会在背面板东西栏中显现当时VI被调用的VIs列表,如图 4所示。从图中能够看出,当时的VI正被1.vi调用,单击该选项,能够看出整个被调用联系的列表VIs。当从列表中挑选某一个VI时,LabVIEW会主动定位到该VI。
图 4 VI Caller Chain
1.3断点东西(Breakpoint)
LabVIEW运转对背面板中的任何一个节点和连线都能够设置断点,程序运转到断点方位时会暂停运转。
在需求放置断点的方位上右击,挑选弹出菜单中的Breakpoint菜单项,运用Set Breakpoint指令能够在当时方位放置一个断点,如图 5所示。
图 5 Breakpoint方便菜单
当在现已存在断点的方位上右击鼠标时,会弹出图 6所示的方便菜单。运用Clear Breakpoint菜单项能够铲除当时的断点,而Disable Breakpoint能够制止当时的断点,此刻断点将不再暂停程序的履行。
图 6 Breakpoint方便菜单
在大型的程序调试中,断点往往是运用的最为频频的东西,它使得程序员能够迅速地专心于所关怀的VI,而关于其它的VI履行进程则正常运转。一般,程序员为了找到某个Bug呈现的原因,会在背面板中设置若干个断点,而一旦铲除去Bug后又需求将这些断点一一地铲除,这难免会重复和繁琐。LabVIEW 8.6供给了一个断点办理的东西,能够挑选图 5或图 6中的Breakpoint Manager菜单项,发动如所示的断点办理对话框(或许直接运用View>>Breakpoint Manager菜单项)。该对话框中列出了当时内存中所有VI中包括的断点,程序员能够挑选恣意地断点批量地将它们铲除或许禁设置为制止状态。