如何才能调试一个使用 DLL Flexible Adapter 调用的DLL?
主要软件: LabWindows/CVI Development Systems>>LabWindows/CVI Full Development System
主要软件版本: 9.0
主要软件修正版本: N/A
次要软件: N/A
问题: 许多编译器可以产生一个Windows的DLL。TestStand能够通过 "DLL Flexible Prototype Adapter" 来调用任何Windows的DLL。DLL文件可能是 LabVIEW, LabWindows/CVI, Visual C++, Visual Basic, VB.NET, C#.NET, Borland, 等各种语言编写的。 使用 TestStand 的 "DLL Flexible Prototype Adapter" 如何才能够调试DLL呢?
解答: 当有源代码的时候是可以调试这个DLL的。通常源代码是以 .c 的文件提供的。然而,文件扩展名也会随着开发环境的不同而不一样。比如,Visual C++就是.cpp的扩展名。
为了调试一个DLL,你必须在DLL原来编译的环境中打开它的源文件。下面两段讨论在 LabWindows/CVI 和 Visual Studio .NET 中调式DLL的过程。
调试 LabWindows/CVI DLL 首先打开DLL的项目文件(.prj). 在CVI中选择
Run»Specify Executable to Debug... 在对话框中必须指定 "Program Name"参数为 TestStand Sequence Editor 的位置。默认的位置应当在
C:\Program Files\National Instruments\TestStand x.x\Bin\SeqEdit.exe。把 "Command Line Arguments" and "Working Directory" 留为空然后点击"OK"。一旦项目文件加载到CVI窗口中来,只要项目被设定为生成DLL文件,你就会在"Run" 菜单下发现一个
Debug SeqEdit.exe... 的项目。选择这个项目就会编译当前的DLL并打开 TestStand Sequence Editor。你现在可以在TestStand中打开使用这个DLL的sequence文件,当你运行这个sequence文件的时候,它就会响应CVI中加入的断点。一旦在任何断点处暂停下来,你就可以使用CVI的调试工具来单步执行源代码。
调试 Visual Studio .NET Assembly 或 C++ DLL 首先打开 Sequence Editor。然后打开 Assembly 或者 DLL 的 solution 文件。在 Visual Studio 中选择
Tools»Attach to Process... 在 Attach to Process 对话框的 Available Processes 部分滚动并选择到
SeqEdit.exe。确保选择
Debug Native Code Types to Attach To。在源代码中的正确位置设置断点。现在打开使用了 Assembly/DLL 的sequence文件,当运行sequence的时候,就会停在断点处。这时就可以用 Visual C++ 调试器来步入,步出或者布过源代码中的一行行代码了。当函数已经被调试,已经执行到DLL函数的最后一行,你可以在调试器上点击
Run to Cursor 来回到 Sequence Editor。
相关链接: KnowledgeBase 2VHEEOO6: Problems Using the Debugging Tools When Multiple Threads Are Running in TestStand
附件:
报告日期: 02/09/2001
最近更新: 04/29/2010
文档编号: 268E2NBD
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.