为什么调试器不起作用

时间:2010-03-10 13:03:40

标签: visual-studio debugging

我的调试器无法正常工作,
我正在设置断点,但在运行中,时间视觉工作室不会停在breakPoint上 如何解决?
我的应用程序没有什么特别之处,它是一个简单的Web应用程序。 我正在使用visual studio 2005。

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

16 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:11)

有几件事可能是错的:

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

答案 2 :(得分:2)

符号可能未加载,这就是为什么断点不会被命中。您是否将网站设置为启动项目?

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

答案 3 :(得分:2)

您可能需要在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>

答案 4 :(得分:2)

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

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

项目上的鼠标右键 - &gt;构建 - &gt;取消'优化代码'

答案 7 :(得分:0)

执行Clean Project,并确保点击Debug,而不是Run

答案 8 :(得分:0)

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

答案 9 :(得分:0)

在Visual Studio 2010中

  1. 选择构建&gt;清除{项目名称}
  2. 重建项目
  3. 现在尝试重建项目并尝试调试

    一切顺利

答案 10 :(得分:0)

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

要解决此问题,请将调试模式更改为仅限原生混合自动enter image description here

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

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

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

答案 13 :(得分:0)

在安装以下附加组件之后,它开始工作。安装后,重新启动Visual Studio。按照VS版本安装插件。

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

答案 14 :(得分:0)

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

答案 15 :(得分:0)

您可能像我一样具有生产版本(通过msi文件安装)和开发版本(在Visual Studio中打开),这就是为什么我今天在VS中无法获得某些断点的原因。< / p>

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

此后清洁并重建解决方案应该可以解决问题。