Windbg:无法遍历托管堆栈

Roc*_*ngh 6 .net c# asp.net windbg adplus

通过Adplus我附加了一个过程(在我的iis我运行了一个网站)

C:\Program Files (x86)\Debugging Tools for Windows (x86)>ADPlus -crash -pn w3wp .exe -o C:\dumps
Run Code Online (Sandbox Code Playgroud)

下面是重现该网站的stackoverflow异常的代码:

protected void Page_Load(object sender, EventArgs e)
{

}
public void Hello()
{
    Hello();
}

protected void Button_Test_Click(object sender, EventArgs e)
{
    Hello();
}
Run Code Online (Sandbox Code Playgroud)

为我创建的转储是:

C:\Dumps\Crash_Mode__Date_05-04-2012__Time_21-44-2020\PID-12452__W3WP.EXE_DefaultAppPool__1st_chance_Process_Shut_Down__full_2bc0_2012-05-04_21-45-53-704_30a4
Run Code Online (Sandbox Code Playgroud)

我在windbg中打开了这个转储并运行了这些命令

0:000> .loadby sos clr
0:000> !clrstack
Run Code Online (Sandbox Code Playgroud)

我得到了以下信息

Unable to walk the managed stack. The current thread is likely not a 
managed thread. You can run !threads to get a list of managed threads in
the process
Run Code Online (Sandbox Code Playgroud)

你能帮我解决一下吗?如何追踪错误的位置?

Bor*_*ode 8

这将返回每个线程的堆栈跟踪,您将能够看到托管跟踪的堆栈跟踪: ~*e !clrstack


Tho*_*att 6

你可以输入!pe来获取异常,或者输入〜#s来切换到故障线程.!clrstack应该可以工作.