!ClrStack -ASP.NET MVC 应用程序中的调用显示 <NO DATA>
!ClrStack -a call in ASP.NET MVC application shows <NO DATA>
将 WinDbg 附加到我的 ASP.NET MVC 应用程序并在发生异常时调用 !ClrStack -a
时,我没有看到本地值或参数值。只见<NO DATA>
出现
为什么会这样?我可以检查项目中的哪些设置?
我很高兴我可以通过 !dso
调用看到问题中的对象并在输出中找到我感兴趣的对象,但这对我来说不是一个好的解决方案,因为我需要确切地知道将对象传递给特定函数 - 我不想花很长时间挑选每个对象地址并对它们进行 !do
。
该应用程序是在 DEBUG
模式下构建的。查看堆栈时,所有方法和类型都出现在输出中,因此我假设符号没有问题,但如果需要,我愿意尝试任何必要的命令来重新同步或更新符号。
CPU 架构是 ANY CPU
而我们是 运行 Windows Server 2008 R2 64 位。
我尝试使用 SOSEX 的 !mk
!mframe
和 !mdv
命令来列出参数和局部变量,但它们显示 <UNAVAILABLE>
.
编辑:
这是我看到的输出类型的示例:
Why does this happen?
对于由 JIT 编译器(您的案例)或发布版本(由编译器)优化的代码,会发生这种情况。
What settings in my project can I check?
始终检查符号路径并添加 Microsoft 符号(如果尚未完成)。
.symfix c:\debug\symbols
.reload
接下来,检查 WinDbg 是否可以使用 lm
找到您的应用程序的符号。它应该显示 "private pdb symbols"。如果没有,运行
.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
将 WinDbg 附加到我的 ASP.NET MVC 应用程序并在发生异常时调用 !ClrStack -a
时,我没有看到本地值或参数值。只见<NO DATA>
出现
为什么会这样?我可以检查项目中的哪些设置?
我很高兴我可以通过 !dso
调用看到问题中的对象并在输出中找到我感兴趣的对象,但这对我来说不是一个好的解决方案,因为我需要确切地知道将对象传递给特定函数 - 我不想花很长时间挑选每个对象地址并对它们进行 !do
。
该应用程序是在 DEBUG
模式下构建的。查看堆栈时,所有方法和类型都出现在输出中,因此我假设符号没有问题,但如果需要,我愿意尝试任何必要的命令来重新同步或更新符号。
CPU 架构是 ANY CPU
而我们是 运行 Windows Server 2008 R2 64 位。
我尝试使用 SOSEX 的 !mk
!mframe
和 !mdv
命令来列出参数和局部变量,但它们显示 <UNAVAILABLE>
.
编辑:
这是我看到的输出类型的示例:
Why does this happen?
对于由 JIT 编译器(您的案例)或发布版本(由编译器)优化的代码,会发生这种情况。
What settings in my project can I check?
始终检查符号路径并添加 Microsoft 符号(如果尚未完成)。
.symfix c:\debug\symbols
.reload
接下来,检查 WinDbg 是否可以使用 lm
找到您的应用程序的符号。它应该显示 "private pdb symbols"。如果没有,运行
.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