【问题标题】:Why the debugger doesn't work为什么调试器不起作用
【发布时间】:2010-03-10 13:03:39
【问题描述】:

我的调试器不工作,
我设置了一个断点,但在运行中,time visual studio 不会在断点处停止。
如何解决?
我的应用程序没有什么特别之处,它是一个简单的 Web 应用程序。 我正在使用 Visual Studio 2005。

我创建了一个新的 Web 应用程序项目,在 default.aspx 页面上有一个 obout 网格控件,在 default.cs 我正在填充一个数据表并将其作为网格的数据源。
我能够调试它,突然调试器永远不会被击中。
请注意,调试器处于加载事件中。

【问题讨论】:

  • 是否运行调试模式? Visual Studio 是否连接到 Web 服务器?
  • 您的断点是否处于活动状态? (活动 = 全红圈)还是不活动? (非活动 = 空的红色圆圈)
  • 我正在使用C#,并且断点处于活动状态。

标签: visual-studio debugging


【解决方案1】:

在下面找到解决我问题的步骤:

  1. C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 中删除 ASP.NET 临时文件
  2. 将构建配置更改为从项目属性中进行调试。
  3. 从您的项目中删除 bin 文件夹。
  4. 检查是否在 web.config 中将编译调试设置为 true
  5. iisreset
  6. 重建项目。

【讨论】:

  • 非常好,我想补充的另一件事是:按照描述完成所有操作后,它仍然无法正常工作。我所做的另一个步骤是删除 SOLUTIONNAME.suo 并且成功了!
【解决方案2】:

有几件事可能是错误的:

  • 您的源代码和程序集可能不同步 - 重新构建应用程序并重试。
  • 您可能附加到了错误的进程 - 检查您附加到的进程。
  • 您的代码中可能存在逻辑错误,导致您的断点未命中(即您所在的方法实际上并未被调用,逻辑分支是围绕断点进行路由控制等)

【讨论】:

  • +1:逻辑错误是“调试器不工作”的最常见原因
  • 我已经重建了我的项目,并且我没有将调试器附加到任何进程。这是一个只有一页的项目,我有一个加载事件的代码,并且没有添加任何引用或其他项目!!!
  • 您能否编辑您的问题以提供您正在做什么的分步细分?有几个潜在的故障点,如果您给我们一个完整的细分,我们将能够提供更好的帮助。 :)
  • 在 page_load 事件的第一行放置一个断点,看看它是否被命中。
【解决方案3】:

断点没有被击中,我清理并重建,但仍然没有击中,

我刚刚重新打开页面(在我的情况下为控制器)并开始正常工作 ..

【讨论】:

  • 谢谢!我原以为盖比的答案会解决它,但实际上你的解决了!当我重新打开页面时,断点消失了,但是当我阅读它时它又工作了。谢谢!!
【解决方案4】:

当一切都失败时,试试这个: 项目上的鼠标右键 -> 构建 -> 取消勾选“优化代码”

或者

我在安装 dotPeek 时遇到了类似的问题,可能是因为我没有 Resharper,它正在从 dotPeek 符号服务器加载符号,但它无法达到我的断点。在这种情况下,打开 dotPeek 并单击停止符号服务器。

【讨论】:

    【解决方案5】:

    符号可能没有加载,这就是断点不会被命中的原因。您是否将网站设置为启动项目?

    调试时,它附加了什么进程?如果要调试asp.net代码,应该是w3wp.exe。

    【讨论】:

    • 如果他们用 Cassini 进行测试,它可能不是 w3wp.exe。
    【解决方案6】:

    您可能需要在 Web 配置中设置您的应用程序,以便可以对其进行调试..

    <system.web>
        <!-- 
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.
        -->
        <compilation debug="true">
            <assemblies>
                <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>
    

    【讨论】:

      【解决方案7】:

      您需要在调试模式下运行,而不是发布模式。

      这里有一篇关于How to: Enable Debugging for ASP.NET Applications的详细文章基本上,你可以在项目属性或web.config中设置调试模式。

      【讨论】:

        【解决方案8】:

        尝试取消选中“启用 Visual Studio 托管进程” 在项目属性 - >调试 为我工作

        【讨论】:

          【解决方案9】:

          当 Visual Studio 设置为调试托管代码但代码未托管(托管代码在公共语言运行时 (CLR) 的控制下运行)时,可能会发生这种情况。

          要解决此问题,请将下图右侧所示的调试模式更改为 Native onlyMixedAuto >。

          旁注:我建议不要选择混合,除非您的系统同时具有托管代码和本机代码(不在 CLR 下运行的代码),因为 Visual Studio 无法附加到已在混合模式下运行的进程。要调试已经运行的代码,Visual Studio 需要设置为在 Native onlyManaged only 中进行调试。

          【讨论】:

            【解决方案10】:

            我已经看到已经存在的答案列出了许多可能的原因,但我想再添加一个:如果您使用的是后编译工具(例如 ILMerge),请检查这些工具是否保留了您的调试信息(是否有.pdb 文件?或者您已将其嵌入到编译输出中)。对于那些在.csproj 中实际使用AfterBuild 任务的人,我真的建议检查一下。

            【讨论】:

              【解决方案11】:

              您可以按照以下步骤启用调试。

              1) Right click project solution
              2) Select Debug( can find left side)
              3) select Debug in Configuration dropdown.
              

              现在运行您的解决方案。它将达到断点。

              【讨论】:

                【解决方案12】:

                您是否使用 IIS Express 而不是 IIS Local 进行调试。我发现 IIS Express 有时不会达到调试点,IIS Local 工作正常。

                【讨论】:

                  【解决方案13】:

                  您可能像我一样同时拥有生产版本(通过 msi 文件安装)和开发版本(在 Visual Studio 中打开),这就是为什么我今天无法在 VS 中触发一些断点。

                  如果是这种情况,您需要卸载生产版本,因为我认为某些 dll 文件会干扰我的调试会话。

                  之后清理并重建您的解决方案应该可以解决问题。

                  【讨论】:

                    【解决方案14】:

                    在 Visual Studio 2010 中

                    1. 选择构建 > 清理 {项目名称}
                    2. 重建项目

                    现在尝试重建项目并尝试调试

                    一切顺利

                    【讨论】:

                      【解决方案15】:

                      安装以下插件后,它开始工作。安装后,重启一次visual studio。按照VS版本安装插件。

                      https://download.qt.io/official_releases/vsaddin/

                      【讨论】:

                      • 请您解释一下:它到底是什么插件以及它的作用。
                      猜你喜欢
                      • 1970-01-01
                      • 2023-01-25
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多