加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – !ClrStack -a调用ASP.NET MVC应用程序显示

发布时间:2020-12-16 09:41:16 所属栏目:asp.Net 来源:网络整理
导读:当将WinDbg附加到我的ASP.NET MVC应用程序并在发生异常时调用!ClrStack -a时,我看不到本地或参数值.我所看到的只是没有数据出现. 为什么会这样?我可以检查项目中的哪些设置? 我很欣赏我可以通过!dso调用查看问题中的对象,并在输出中找到我感兴趣的对象,
当将WinDbg附加到我的ASP.NET MVC应用程序并在发生异常时调用!ClrStack -a时,我看不到本地或参数值.我所看到的只是<没有数据>出现.

为什么会这样?我可以检查项目中的哪些设置?

我很欣赏我可以通过!dso调用查看问题中的对象,并在输出中找到我感兴趣的对象,但这对我来说不是一个好的解决方案,因为我需要确切地知道传递给特定函数的对象 – 我不想花费多少时间选择对象地址并对其进行操作.

该应用程序以DEBUG模式构建.查看堆栈时,所有方法和类型都出现在输出中,所以我假设符号没有问题,但我愿意尝试任何必要的命令来重新同步或更新符号(如果需要).

CPU架构是任何CPU,我们运行Windows Server 2008 R2 64位.

我尝试使用SOSEX的!mk!mframe和!mdv命令列出param和locals,但它们显示< UNAVAILABLE>.

编辑:

这是我看到的输出类型的示例:

解决方法

Why does this happen?

对于由JIT编译器(您的情况)或发布版本(由编译器)优化的代码,会发生这种情况.

What settings in my project can I check?

如果尚未完成,请始终检查符号路径并添加Microsoft符号.

.symfix c:debugsymbols
.reload

接下来,检查WinDbg是否可以使用lm找到应用程序的符号.它应该显示“私人pdb符号”.如果没有,请运行

.sympath+ <path to your PDBs>

除此之外,SOSEX让您的生活更轻松.请尝试以下方法:

!mk; *** Managed stack
!mframe <frame>; *** Switch to frame
!mdv; *** Dump values - This will at least give you the type
!mdv <frame>; *** Same as before but include !mframe
!mdso; *** Similar to !dso

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读