【发布时间】:2017-02-18 17:19:47
【问题描述】:
情况:
我正在开发一组 DLL 库,并在我测试它们的项目中单独使用它们。我经常需要在错误点中断,但通常我还是会遇到异常,VS 会为我找到源文件和正确的位置,允许我在那里中断,但有时没有错误但不需要的结果,所以我需要窥视内部并查看实际数据,我当然可以从 .exe 解决方案中的调试模式开始导航到该点,但它隐藏了一些函数调用,我可能最终会得到 5-6 个文件打开比我需要的,加上找到它的时间。 问题:
有没有办法通过另一个实例中的断点使 VS 的一个实例在特定点中断?鉴于他们都在 DLL 中看到用于调试信息的相同 .pdb 文件,我想他们也可以共享此类信息,但显然不是(?)。我确实记得看到一个关于在 DLL 中跳过断点的问题,所以我想 是可行的。
当前替代方案:
到目前为止,我仅限于故意注入错误的代码位以使第二个实例在正确的位置打开文件,通常除以零就可以了,但它仍然有点来回。请注意,它现在是 VS2010,尽管我想他们在后续版本中并没有对此进行任何更改。
提前致谢。
【问题讨论】:
-
不确定你在问什么。顺便说一句,你最好使用 DebugBreak 然后除以零。
-
我想让 .exe 的调试器查看来自其他(DLL 的)解决方案的断点,仅此而已。
-
为什么不把所有东西都放在一个解决方案中呢? (这就是他们称之为“解决方案”的原因。)
-
嗯,我希望我会尽可能地分离 DLL,这样我就不会无意识地修改通用 DLL 以适应特定的项目。实际上,这是迄今为止我看到的将所有内容都放在一个解决方案中的唯一原因。所以我承认这是一个偏好和舒适的问题:)
-
断点属于解决方案,而不是 .pdb(符号)文件,由附加的调试器设置。只能将一个调试器附加到进程。在 Visual Studio 中添加断点时,它们不会持久保存到磁盘,除非您保存解决方案(或显式导出断点)。
标签: .net visual-studio-2010 debugging dll