C# Visual Studio 2008调试问题

C# Visual Studio 2008调试问题,c#,visual-studio-2008,debugging,C#,Visual Studio 2008,Debugging,我在VS2008工作,在一个解决方案中有三个项目。我正在通过附加到第三方应用程序(SalesLogix,一个CRM应用程序)调用的.net进程进行调试 一旦它连接到进程,并且我尝试在其中一个项目中设置断点,它就不会在该文件中设置断点。它实际上将当前选项卡切换到另一个项目中的另一个文件,并在该文档中设置断点。如果文件没有打开,它甚至会为我打开它。我无法解释这一点。我不知道。有人见过这种奇怪的行为吗?如果我自己没有看到,我不会相信 更多信息:如果我在附加之前设置一个断点,它会显示“红点”,并表示没有

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

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

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

有人有什么想法吗

Thx


Jeff

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


您可能还需要检查生成配置,以确保所有项目实际上都是在调试模式下生成的。我知道我已经被抓到过好几次,当时解决方案的配置发生了变化,一些项目没有在调试模式下编译。

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

我同意-名称空间就这么多了,对吗?这该死的东西花了我几个小时。哦,好吧……至少问题解决了,我知道为什么


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

是在方法/函数调用上设置断点的行吗?可能函数已经内联,所以VS足够聪明,可以在方法本身中设置断点。