从其他应用程序调试C#代码
我正在从QTP加载一个DLL(c#)。 是否可以在qtp测试开始时调试c#代码。
是的,您可以调试到dll,但是您需要源(除非您想要查看反汇编),并且还需要PDB(调试符号)进行组装。 它很容易设置……
- 启动QTP应用程序
- 启动视觉工作室
- 打开源代码并确保pdb与dll位于同一目录中
- 在VS中进入调试菜单并选择附加进程
- 在进程列表中,选择QTP进程并单击“附加”
- 在代码中设置断点
- 启动执行代码的测试,如果一切正常,你应该点击断点
注意:如果没有命中断点,VS可能找不到PDB,你需要在VS中的选项中添加一个路径(或者它可以找到它们的东西)。
另外,如果它仍然不起作用,请尝试在工具 – >选项 – >调试选项页面中关闭“仅启用我的代码”(主要是如果您正在查看发布的内置代码)。
更新:回答评论…如果您转到工具 – >选项…在左侧列表中选择“调试”并展开它,然后选择“符号”,您可以在那里为VS添加路径以搜索符号。 此外,如果您没有确切的符号,则可以右键单击断点并选择位置,然后选中允许符号不同步的选项。
希望这可以帮助!
您可以插入对Debugger.Break()
的调用并运行外部应用程序,当达到断点时,Windows将为您提供调试exception的function。
选择调试将使您能够在Visual Studio中的中断后运行代码并在代码中设置断点。
如果您使用的是Vista / Win7,则可能需要启用调试 – 请查看此post以了解具体方法。