我正在尝试在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进程,但是我在代码中设置的断点永远不会被击中,尽管那个代码肯定被调用了。我在这里缺少什么?
答案 0 :(得分:0)
您的程序集可能已编译为发布或编译时没有任何调试信息。如果您正确地执行了操作,则应该能够通过附加到进程来进行调试。可能的另一件事是,您的代码在您可以附加到它之前执行。有时,特别是在服务中,你将thread.Sleep
放入代码中,这样就可以花一些时间来附加。
答案 1 :(得分:0)
问题结果是VS没有正确地确定要调试的代码类型。在附加到流程窗口中,我必须从自动切换到手动指定调试托管(v4.5,v4.0)代码类型在附加到父.exe
进程之前,在附加到:选项中。然后我可以逐步完成我的来源。 (事实证明,不需要复制.pdb
文件 - VS仍在原始项目Debug目录中使用该文件的版本。)