无法对运行的DLL进行源级调试

时间:2017-03-31 18:40:18

标签: c# .net debugging dll visual-studio-debugging

我正在尝试在Windows上调试我的DLL类库,但是我无法让调试器在源代码中停止。

环境:Windows 10 Pro x64,Visual Studio Premium 2013 Update 5.项目是.NET 4.5类库。在调用.exe之前,可执行文件实际上由另一个.dll实例化。 (我没有对这些.exe中的任何一个进行源代码访问。)。。dll与其调用.exe位于同一个目录中,但这不是类库项目目录。我知道我的.dll代码正在执行,因为我在我的代码中创建了新窗口,这些窗口正在打开。

我在VS2013中尝试过 Debug-> Attach to Process ... ,并且我连接到调用的.exe进程,但是我在代码中设置的断点永远不会被击中,尽管那个代码肯定被调用了。我在这里缺少什么?


编辑:这不是another question的副本:

  • 没有收到任何错误消息
  • 不是间歇性地工作
  • 确认装配已加载并执行

2 个答案:

答案 0 :(得分:0)

您的程序集可能已编译为发布或编译时没有任何调试信息。如果您正确地执行了操作,则应该能够通过附加到进程来进行调试。可能的另一件事是,您的代码在您可以附加到它之前执行。有时,特别是在服务中,你将thread.Sleep放入代码中,这样就可以花一些时间来附加。

答案 1 :(得分:0)

问题结果是VS没有正确地确定要调试的代码类型。在附加到流程窗口中,我必须从自动切换到手动指定调试托管(v4.5,v4.0)代码类型在附加到父.exe进程之前,在附加到:选项中。然后我可以逐步完成我的来源。 (事实证明,不需要复制.pdb文件 - VS仍在原始项目Debug目录中使用该文件的版本。)