从其他应用程序调试C#代码

我正在从QTP加载一个DLL(c#)。 是否可以在qtp测试开始时调试c#代码。

是的,您可以调试到dll,但是您需要源(除非您想要查看反汇编),并且还需要PDB(调试符号)进行组装。 它很容易设置……

  1. 启动QTP应用程序
  2. 启动视觉工作室
  3. 打开源代码并确保pdb与dll位于同一目录中
  4. 在VS中进入调试菜单并选择附加进程
  5. 在进程列表中,选择QTP进程并单击“附加”
  6. 在代码中设置断点
  7. 启动执行代码的测试,如果一切正常,你应该点击断点

注意:如果没有命中断点,VS可能找不到PDB,你需要在VS中的选项中添加一个路径(或者它可以找到它们的东西)。

另外,如果它仍然不起作用,请尝试在工具 – >选项 – >调试选项页面中关闭“仅启用我的代码”(主要是如果您正在查看发布的内置代码)。

更新:回答评论…如果您转到工具 – >选项…在左侧列表中选择“调试”并展开它,然后选择“符号”,您可以在那里为VS添加路径以搜索符号。 此外,如果您没有确切的符号,则可以右键单击断点并选择位置,然后选中允许符号不同步的选项。

希望这可以帮助!

您可以插入对Debugger.Break()的调用并运行外部应用程序,当达到断点时,Windows将为您提供调试exception的function。

选择调试将使您能够在Visual Studio中的中断后运行代码并在代码中设置断点。

如果您使用的是Vista / Win7,则可能需要启用调试 – 请查看此post以了解具体方法。