为啥调试我的asp.net网站时有时会弹出反汇编程序/反汇编窗口?

Posted

技术标签:

【中文标题】为啥调试我的asp.net网站时有时会弹出反汇编程序/反汇编窗口?【英文标题】:Why does disassembler/disassembly-window pops up sometimes when I debug my asp.net website?为什么调试我的asp.net网站时有时会弹出反汇编程序/反汇编窗口? 【发布时间】:2013-08-16 07:59:01 【问题描述】:

为什么在我调试我的asp.net网站时,有时会弹出disassembler/disassemly-window?

它有时会发生,但并非总是如此。我在互联网上搜索过,但没有找到有用的结果。例如:它发生在我尝试调试查询时;它出现在我到达一个特定代码段之后/当我使用它启用 4 个文本框之一,同时使用更新面板保持其他文本框禁用(这里没有什么突破性的)。

我的代码工作正常,我再说一遍,这个反汇编的东西不会造成任何问题,只是以前没有发生过。

这是否意味着我的代码或我编写代码的方式有问题......还是什么??

【问题讨论】:

*** 中的第一名 (+5) :) 欢迎来到 ***! 【参考方案1】:

在工具、选项、调试中尝试禁用“启用地址级调试”。

我要补充一点,您通常可以启用“仅启用我的代码”(同一页面),但我认为禁用它以在我的代码之外出现问题时理解它是有用的。

如果您启用了Enable address-level debugging,禁用了Enable just my code,并且您已将调试器配置为在抛出异常时中断,则该窗口通常会出现。

通常会在 .NET 代码/其他库代码中抛出一些“良性”(非终端)异常,这些异常会被捕获,而不会出现在您的代码中。使用所有这些选项“启用(如我告诉你的那样设置)”,调试器将打破这些异常(经常非常无聊)并且必须向你展示一些东西......但它没有源代码,因此它会显示反汇编(或一个空窗口询问您是否要查看反汇编,如果您禁用了“如果源不可用则显示反汇编”)

【讨论】:

想谈谈利弊,甚至是一般影响? @GrantThomas From here: If you have enabled Just My Code, Break when an exception is: Thrown does not cause the debugger to break immediately if an exception is thrown in a .NET Framework method or other system code. Instead, execution continues until the debugger hits non-system code, then it breaks. As a result, you do not have to step through the system code when an exception occurs. 但通常是异常反弹到您的代码被其他外部代码修改...通常最好能够看到异常的产生位置 谢谢,但我并不是为了我的直接利益而说话,我的意思是让答案不仅仅是立即修复,而是提供一些非常有用的信息。就此功能而言,这也是冰山一角。 @GrantThomas 我从未使用过地址级调试 :-) 我从 .NET 1.1 编程 ... 所以,a little bit of knowledge...【参考方案2】:

当您尝试调试没有符号的代码并且启用了地址级调试时,会出现反汇编窗口。

看到这一点的最常见方法是尝试进入 .Net 代码。

【讨论】:

以上是关于为啥调试我的asp.net网站时有时会弹出反汇编程序/反汇编窗口?的主要内容,如果未能解决你的问题,请参考以下文章

用ASP.NET做网站时,为啥设置了showMessageBox属性为True却不会弹出窗口?

为啥在运行C#时会弹出找不到调试类型coreclr调试适配器描述符?

为啥图像不显示在我的 ASP.Net 核心网站上?

为啥我的电脑开机就会弹出visual Studio 实时调试器啊?而且点击否就蓝屏,谢谢

为啥在单步执行 ASP.NET MVC 控制器时,我的 VS2008 调试会话总是退出?

asp.net无法调试,弹出无法直接启动带有“类库输出类型”的项目