有人经历VS2008(包含SP1)随机忽略或丢失断点吗?

时间:2008-11-14 03:59:19

标签: visual-studio-2008 breakpoints

自升级到2008年以来,我和这里的很多人都注意到随机VS将不再介入代码或跳过断点。它进入了调试变成真正苦差事的阶段。我们正在运行SP1,但也注意到2008年基本问题。

在参考Robert的问题时:我们在Windows服务中托管WCF和Remoting服务。本质上来自客户端的调用(通常是windows exe)将最终出现在服务本身和我们的代码中的一个线程中(而不是远程处理或WCF基础结构)。一旦进入我们的代码,断点就会出现这种情况。

我们在这里进行的大部分调试都是在服务代码中,所以ATTACH要处理得非常宝贵,有时候不可能达到所需的状态,除非在进程启动后附加到进程。它发生在开发人员身上,例如resharper和运行vanilla VS的人。

在谷歌上看并没有多大帮助。

其他人有这种经历吗?

的问候, 普里特


Spudlo的回答对我们来说非常有用。谢谢。请从MSDN

下载修复程序

4 个答案:

答案 0 :(得分:2)

是的,当我忘记从RELEASE切换到DEBUG时。 ;)

在我意识到自己的愚蠢之前,总是让我发疯。

答案 1 :(得分:2)

要检查的一些事项:

  • 您的PDB与应用程序dll位于同一目录中吗?
  • 他们是Debug构建吗?
  • 也是源的路径不同?
  • 连接时是否加载Dll(检查输出控制台)?
  • 断点是否在VS中显示为空心圆圈(未填充)?如果是这样,将鼠标悬停在断点上,它将告诉您为何无法设置断点。

也许作为一种解决方法可以从VS内部启动服务。如果您将应用程序更改为控制台应用程序,并添加一个调用OnStart方法的main方法(就像Windows服务一样)。您仍然可以将应用程序安装为Windows服务,也可以直接从VS运行:

public static void Main(string[] args)
{
    if (Environment.UserInteractive)
    {
        Console.WriteLine("Starting service...");
        Service1 svc = new Service1();
        svc.OnStart(args);
        Console.WriteLine("Started");
        Console.WriteLine("");
        Console.WriteLine("Press any key to stop");
        Console.Read();
        Console.WriteLine("Stopping...");
        svc.OnStop();
        Console.WriteLine("Stopped, Press any key to exit");
        Console.Read();
    }
    else
    {
        ServiceBase.Run(new Service1());
    }
}

答案 2 :(得分:2)

Here是一篇博文,附有补丁的链接。

答案 3 :(得分:1)

我们看到了SP1的BP问题。我们向Conenct(https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363453)报告了它,MS已经发送了一个DLL来修复它(似乎工作)。我希望MS能尽快发布补丁。

由于您没有SP1的问题,它可能会有所帮助