出现情况:WIN7 安装SDK界面卡死
安装程序由.Net重写过,重写原因:原SDK不能从网络安装,假定所有SDK所需文件都在本地。
SDK包含:头文件,lib,附属工具等。
一.一些简单的命名规则
TppWorkThread Tpp开头表示在线程池中
Rtl开头代表操作系统的运行时库
ntdll !Rtl 开头代表Nt所依赖的一些系统的核心函数
nt/ntdll 中都有一些Rtl开头的核心函数(nt是内核态,ntdll是用户态,ntdll是与内核态接口的dll)
ntlpExcuteHander...中的p代表是内部函数,而RtlUnwindEx,直接接大写代表是公开的函数
JIT表示即时编译,JIT_Throw即时编译时抛异常
二.一些常用的基础命令
~ 针对线程
* 所有线程
k 查看栈 ,有kv kb kn kp等不同组合,有不同效果
kv可以在栈上显示返回的参数
kn有每个栈的栈针的编号,有每个栈针的基地址
~*k查找出栈的信息时,执行顺序自下向上(由栈顶向栈底)看。栈底至栈顶地址逐渐递增,栈顶至栈底地址逐渐递减。
!exchain 查找异常的地址
!threads 显示托管栈信息
! do 地址 (dumpobject,.net世界中一切皆为对象)把栈中所有对象都dump出来
!clrstack 地址 查看代码
.loadby sos mscorwks 加载运行mscorwks运行时相同目录的sos 也可以.load绝对路径,但是不推荐
加载后,可运行!help显示支持的命令
此时执行!dumpstuck可现实k命令看不到的函数名,找出执行k时不同的函数进行分析
x 查找文件的二进制地址,支持匹配符。如:x ntdll ! *
三.其