主页
技术支持
如何在TestStand中获取调用者文件名
如何在TestStand中获取调用者文件名
更新 Jul 17, 2023
环境
环境显示经过验证可用于本文描述的解决方案的产品。此解决方案也可能适用于其他类似产品或应用程序。
软件
TestStand
开发者可以暂停执行,然后在TestStand开发环境的Call Stack面板中查看调用栈。但是,如果您使用自定义用户界面运行序列,您将无法看到Call Stack窗格。使用此技术,可以将完整的调用堆栈输出到文本文件或用户界面以进行故障排除。
要递归获取调用者文件名,您需要完成以下步骤。
启动
NI TestStand
。
右键单击
Sequences
窗格,选择
Insert Sequence,
插入 2 个序列。
将它们分别重命名为
Sequence_1
和
Sequence_2
。
转到
MainSequence
并插入一个
Sequence Call
步骤。
将其重命名为
Call Sequence_1
勾选
Use Current File
从 Sequence 下拉列表中选择
Sequence_1
转到
Sequence_1
并插入一个
Sequence Call
步骤。
将其重命名为
Call Sequence_2
勾选
Use Current File
从 Sequence下拉列表中选择
Sequence_2
转到
Sequence_2
添加一个字符串局部变量
CallStack
添加一个数值局部变量
i
添加
一个数值局部变量
在 Sequence_2 中添加
Statement
步骤
在
Expression
文本框中输入
Locals.CallStack = ""
在 Sequence_2 中添加
For
步骤
在
Number of Loops
中输入
RunState.Thread.CallStackSize
在
Loop Variable
中输入
Locals.i
在
For
和
End
步骤之间插入一个
Statement
步骤
在
Expression
文本框中输入
Locals.CallStack+= RunState.Thread.GetSequenceContext(Locals.i, Locals.out).CallStackName + "\n"
在 Sequence_2 的
End
步骤后添加
Message Popup
步骤
在
Text and Buttons
选项卡上的
Message Expression
文本框中键入"Call Stack:\n" + Locals.CallStack
在 NI TestStand 中,
选择
Execute
»
Single Pass
运行序列。
Message Popup 窗口显示执行线程的完整调用堆栈,如下所示。此外,您可以将输出字符串
Locals.CallStack
保存到日志文件中以便进一步进行故障排除。
相关链接
CallStackSize Property – TestStand Help
GetSequenceContext Method - TestStand Help
Call Stack Pane - TestStand Help
其他支持选项
询问NI社区
在我们的论坛中与其他用户协作
搜索NI社区以寻求解决方案
请求工程师的支持
可能需要有效的服务协议或有效的软件订阅,同时支持选项因国家/地区而异
打开服务请求
了解软件订阅和服务
了解硬件服务计划
Was this information helpful?
Helpful
Not Helpful