dNet程序反编译后是IL汇编,是虚拟机汇编语言;是不能直接用WinDBG调试的;模糊记得,windbg需要加载名为SOS的扩展,才能调试dNet程序;下面来试一下;
windbg设置好符号路径;
VS做一个简单C#程序,跑起来,然后在任务管理器中抓一个该程序到dump文件;
,.dmp文件;
打开dump文件;
windbg执行 .cordll -u -ve -l,按资料这是加载SOS扩展;如下图应是加载成功,
然后运行 !threads 命令,查看托管线程;
提示错误;SOS不支持当前目标架构;出错了;但此错误可以确认SOS工作了;
修改C#程序属性,改为如下,
生成后重新抓一个dump;再试;还是一样错误;
查一下资料,
SOS does not support the current target architecture解决方法
客户提交一个dump文件,WinDbg加载时出现大量WARNING,加载对应版本的SOS后执行相应命令提示"SOS does not support the current target architecture"。
原因在于使用了64位的任务管理器导出了32位进程的dump文件,下面是两个解决方法:
1、使用32位任务管理器,运行:C:WindowsSysWOW64taskmgr.exe。
2、使用其它转储工具,比如:ProcessExplorer。
重新把C#程序生成为如下目标平台;再抓一个dump;再试;
看上去我到工具好像出了问题;下回再整;



