我们有时调试dump文件时,由于产生dump的机器和我们调试的机器的SOS,CLR版本不匹配,导致无法调试,报如下错误
解决这种报错有两种方法:
方法一:
1、从产生dump的机器的C:\Windows\Microsoft.NET\Framework64\v4.0.30319目录下找到SOS.dll,clr.dll,mscordacwks.dll,并拷贝出来
2、在调试机器上,在windbg中将SOS.dll加载进去
方法二:
1、在windbg中输入 .symfix e:\sos\cache 命令(目录为缓存目录,自己可以任意定义)
2、再输入 .sympath,之后会看到如下结果
3、再输入 .cordll -ve -u -l ,可以看到如下结果
4.此时说明已经成功从微软服务器上获取到了对应的SOS文件了
参考资料:
.symfix(设置符号存储路径) - Windows drivers | Microsoft Docs