【问题标题】:Why would breakpoints in VS2008 stop working?为什么VS2008中的断点会停止工作?
【发布时间】:2008-09-12 22:37:48
【问题描述】:

我有一个 c# asp.net 网络应用程序。数据库层中的断点不再停止执行,但 UI 层中的断点仍然可以正常工作。谁能猜猜为什么会发生这种情况?

我已经检查了所有常见的嫌疑人(所有项目的调试版本都已开启)并重新编译了解决方案中的所有项目...

【问题讨论】:

    标签: visual-studio-2008


    【解决方案1】:
    • 将调试器附加到 ASP.NET 进程并单击模块窗口。确保为要调试的程序集加载了调试符号。
    • 确保 UI 引用的是调试程序集,而不是发布程序集。
    • 确保 .PDB 文件位于 /bin/debug/ 目录中
    • 确保在附加调试器之前重建整个解决方案。
    • 如果数据层在单独的解决方案中,请将项目添加到 UI SLN(您不需要添加引用,那些应该已经建立,否则您的代码将无法编译),以便调试器可以调出完整代码。

    【讨论】:

      【解决方案2】:

      感谢大家的回复和想法 - 我已经尝试了所有这些或它们的变体。

      我认为这一定是一个非常微妙的 VS 错误。一位同事建议我将我试图打破的功能公开(以前“未定义”,因此隐含私有),然后再试一次。我这样做了,断点开始受到打击。然后我删除了 public 关键字并继续命中断点。不知道为什么这解决了它,但它确实解决了。

      感谢您的帮助!

      【讨论】:

        【解决方案3】:

        几个建议。 第一个是检查源代码行中断点的状态。它是一个实心的红球吗?如果不是,它通常表明有问题的文件不是用于构建的文件。 其次 - 查看模块视图并查看已加载的模块和符号。你可能会发现这不是你所期望的。

        至于为什么-我不知道!

        尼克

        【讨论】:

          【解决方案4】:

          我会确保 UI 层引用了适当的“调试”.dll。我还考虑在调试时按 CTRL+ALT+U (Modules View) 以查看是否为您加载了符号BLL 和 DAL .dlls。如果没有,则 Visual Studio 无法找到该文件的 .PDBs
          调试文件 .PDBs 是否与模块窗口中引用的 .dlls 位于同一目录中?

          【讨论】:

            【解决方案5】:

            您是否尝试过在重新编译之前删除您的 bin 目录?

            【讨论】:

              【解决方案6】:

              我遇到了同样的问题,并一直在想“我在 web.config 中做了什么更改”以可能会这样做?

                <location path="." inheritInChildApplications="false">
              

              那不允许断点为我工作。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-08-26
                • 2018-12-16
                • 1970-01-01
                相关资源
                最近更新 更多