!clrstack -p 没有给出调用堆栈中方法的参数值 [英] !clrstack -p not giving the values of the parameters for the methods in the call stack

查看:45
本文介绍了!clrstack -p 没有给出调用堆栈中方法的参数值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在尝试使用 windbg 分析 w3wp 内存转储,我们发现 w3wp 进程由于堆栈溢出而崩溃.我加载了 psscor4.dll 并通过发出 !clrstack 获取了调用堆栈.但我也想知道传递给方法的参数.如果我发出!clrstack -p"或!clrstack -a",我们将获得<没有数据>对于所有参数和局部变量.任何想法,为什么我们得到<没有数据>而不是参数和局部变量的实际值?

We are trying to analyze a w3wp memory dump using windbg and we found that w3wp process is crashing due to stack overflow. I loaded the psscor4.dll and got the call stack by issuing !clrstack. But I also want to know the paramaters being passed to the methods. If I issue "!clrstack -p" or "!clrstack -a", we are getting <no data> for all the Parameters and local variables. Any idea, why we are getting <no data> instead of actual values for the Parameters and local variables ?

推荐答案

如果您正在运行发布版本,您通常无法跟踪局部变量和参数,因为它们已被优化并存储在寄存器中.如果你真的需要它,你可以查看 JIT 编译的代码并在寄存器中定位值,但这可能需要大量的簿记.

If you're running a release build you will usually not be able to track locals and parameters as they are optimized and store in registers. If you really need it, you can look at the JIT compiled code and locate the values in the registers but that may require a lot of book keeping.

这篇关于!clrstack -p 没有给出调用堆栈中方法的参数值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆