Visual Studio 2008调试问题

时间:2020-03-05 18:44:10  来源:igfitidea点击:

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

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

更多信息:如果我在连接前设置了一个断点,它会显示"红点",并说没有加载符号...没问题...我希望那样。当我添加并从SalesLogix调用.net代码并切换回VS时,我的断点完全消失了(甚至没有警告说源与调试文件不匹配)。当我尝试手动加载调试文件时,我收到一条消息,提示符号文件与模块不匹配。 .pdb和.dll都加上了时间戳,所以我很困惑。

有人有想法么?

谢谢,

杰夫

解决方案

回答

我在VS.Net的旧版本(我认为是2003)中看到了此功能。它可能在当前版本中仍然存在,但是我还没有遇到过。似乎即使在不同目录中,具有相同名称的文件也会使VS.Net感到困惑,并且最终在具有相同名称的文件中设置断点。仅当文件中的类也具有相同的名称时,才可能发生。我猜想命名空间就这么多。

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

回答

Kibbee,你是对的!这是在不同文件夹中具有相同名称的两个文件。我在第58行的正确文件中设置了断点,将断点放在第58行的另一个文件中。我终于能够通过使用" Debug-> New Breakpoint-> Break at Function Name"来设置断点。菜单选项,然后输入我的函数名称。它完全停止了它的运行。

我非常同意名称空间,对吗?该死的东西花了我几个小时。哦,嗯...至少已经解决了,我知道为什么。

感谢答案,也感谢Matt的答复!