4

我在 VS 2008 中工作,并且在一个解决方案中拥有三个项目。我通过附加到第三方应用程序(SalesLogix,CRM 应用程序)调用的 .net 进程进行调试。

一旦它附加到进程并且我尝试在其中一个项目中设置断点,它就不会在该文件中设置断点。它实际上将当前选项卡切换到另一个项目中的另一个文件,并在该文档中设置断点。如果文件没有打开,它甚至会为我打开它。我无法解释这一点。我一点头绪都没有。有人见过这种奇怪的行为吗?如果不是亲眼所见,我是不会相信的。

更多信息:如果我在附加之前设置了一个断点,它会显示“红点”并说没有加载任何符号......没问题......我希望如此。当我从 SalesLogix 附加并调用我的 .net 代码并切换回 VS 时,我的断点完全消失了(甚至没有警告源与调试文件不匹配)。当我尝试手动加载调试文件时,我收到一条消息,指出符号文件与模块不匹配。.pdb 和 .dll 的时间戳相同,所以我很难过。

有人有想法么?

谢谢,

杰夫

4

2 回答 2

4

我在旧版本的 VS.Net(我认为是 2003 年)中看到了这个功能。它可能仍然存在于当前版本中,但我还没有遇到过。似乎具有相同名称的文件,即使在不同的目录中也会混淆 VS.Net,它最终会在同名文件中设置一个断点。仅当文件中的类也具有相同名称时才可能发生。我猜对于命名空间来说太多了。

您可能还想检查您的构建配置,以确保所有项目实际上都在调试模式下构建。我知道当解决方案的配置以某种方式更改时,我已经被抓住了几次,并且有些项目没有在调试模式下编译。

于 2008-08-28T00:34:39.363 回答
0

基比,你是对的!这是两个在不同文件夹中同名的文件。我在第 58 行的正确文件中设置断点 - 它在第 58 行将断点放在另一个文件上。我终于能够通过使用“调试-->新断点-->函数中断”来设置断点名称”菜单选项并输入我的功能名称。它完全像那时应该那样停止了。

我同意 - 命名空间就这么多,对吧?该死的事情花了我几个小时。哦,好吧......至少它已经解决了,我知道为什么。

谢谢你的回答,也谢谢马特的回复!

于 2008-08-28T01:19:13.733 回答