JIT的初始断点

来源:互联网 发布:apache的ab 编辑:程序博客网 时间:2024/06/05 03:08

上网好好的,忽然IE Crash了,windbg作为JIT被自动启动起来,下意识的输入!runaway, ~* kv查看,发现所有的线程都在ntdll!KiFastSystemCallRet,也就是在内核中,一时间很奇怪,那IE怎么crash的?带着这个问题,中饭都没吃好。

 

苦思了很久之后,一下子顿悟了。当时的断点应该是初始断点,也就是ntdll!DbgUiRemoteBreakin,而真正的罪魁祸首应该还需要再g一下,跳过这个无意义的初始断点,虽然当时的IE已经没了,幸好留了dump,使用windbg打开,使用~* kv仔细观察,毕竟有37个线程。

分析dump虽然找不到crash的指令,总有蛛丝马迹可寻。从栈中可以追溯历史。定位到某个线徎,

 

0aed50f4 76ee5e4c 750c6872 00000002 0aed5148 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
0aed50f8 750c6872 00000002 0aed5148 00000001 ntdll!NtWaitForMultipleObjects+0xc (FPO: [5,0,0])
...

 

全文见 http://user.qzone.qq.com/31731705/blog/1297325245

原创粉丝点击