1.打开windbg,加载dump.使用命令确定dump的clr版本:lm vm mscorwks 或者lm vm clr(!eeversion可以查看加载后的sos版本) 2.找到对应的mscorwks.dll文件,命名为:mscordacwks_AMD64_AMD64_2.0.50727.5477.dll mscordacwks_X86_X86_2.0.50727.5477.dll 3.把上面的文件放到符号目录:mscordacwks_AMD64_AMD64_2.0.50727.5477.d…
使用windbg 加载sos.dll时,经常碰到报The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll) failed, Win32 error 0n193这样的错误,按照提示,应该为加载的dll版本不对造成的.应该是因为在x64环境下,加载了X86的版本.指定路径加载.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll,发现OK…
WinDBG中加载SOS和CLR 最近产品环境出现了部分服务器当机情况,虽然重启之后问题就不出现了.但本着彻底解决问题的态度,想要找到root cause.多次尝试Visual Studio失败(可能是代码惊醒了优化和签名)之后,决定使用WinDBG来调试.于是...灾难发生了. 想要一次性成功搭建测试环境,那得靠人品.看来我近来人品积累的不够,不断的有小问题出现.比如加载SOS和CLR,就让我不胜其烦.必须得记下来,分享出来,以节省大家的时间. 问题一:WinDBG分X86和X64两个版本 如…
问题描述:在VS中运行一个C#程序,出现错误: 未能加载或程序集“XXXX,Version=0.0.0.0,Culter=neutral,PublicKeyToken=null”或它的某一个依赖项.试图加载格式不正确的程序. 解决方案:(解决方案上--鼠标右键--属性--配置属性)win64位操作系统,VS的解决方案平台为x86:WIN32位操作系统,其解决方案平台为Any CPU.…
最近产品环境出现了部分服务器当机情况,虽然重启之后问题就不出现了.但本着彻底解决问题的态度,想要找到root cause.多次尝试Visual Studio失败(可能是代码惊醒了优化和签名)之后,决定使用WinDBG来调试.于是...灾难发生了. 想要一次性成功搭建测试环境,那得靠人品.看来我近来人品积累的不够,不断的有小问题出现.比如加载SOS和CLR,就让我不胜其烦.必须得记下来,分享出来,以节省大家的时间. 问题一:WinDBG分X86和X64两个版本 如果你用的是32位的WinDBG,那…
假设我们希望在加载特定的dll时中断调试器,例如,我想启用一些SOS命令,而clr还没有加载,当您遇到程序中过早发生的异常,并且您不能依赖手动尝试在正确的时间中断时,这尤其有用.例如,在将调试器附加到一个进程之后,我会得到一个错误,因为clr尚未加载 0:000> .loadby sos clr Unable to find module 'clr' 使用sxe ld命令,我可以告诉调试器在加载clr时中断. 0:000> sxe ld clr 0:000> g 我马上就明白了: Mod…
介绍 大家好!很高兴向大家介绍我的图片预加载控件YPreLoadImg.它可以帮助您预加载图片,并且能显示加载的进度,在预加载完成后调用指定的方法. YPreLoadImg控件由一个名为PreLoadImg的类组成.该类的构造函数为:PreLoadImg(images, onstep, onload) 依赖库 YOOP 用法 new PreLoadImg( /** * 图片数据 * id为图片id号,url为图片地址 */ [ { id: "a1", url: "a1.png…
0x00 前言 在使用windbg调试windows中的程序时会经常碰到一些系统的dll里面的一些函数调用,有些函数是没有具体函数名的,这对于调试非常不利,基于此,微软针对windows也发布了很多系统dll对应的符号表,这些符号表如今基本集成在了微软的符号表服务器中,本文简单讲一下如何在windbg中加载符号表. 0x01 配置符号表 首先给一个最常用的方式,要做的工作基本就是先在本地指定的文件目录搜索对应的符号表,如果找不到就连接远程服务器下载,并保存在本地,方便下次使用,如下 .sympa…
在CLR的世界中,有一系列的令人Amazing的技术和架构.其中,CLR对应用程序在内存中内存分配,执行模型,程序之间的交互等一系列的技术,值得每一个致力于DotNet平台的技术人员深究. 编程人员在开发的过程中,如果把程序集的加载(Assemblies Load),反射(Reflection),寄宿(Hosting),应用程序域(AppDomain),这四种技术结合起来使用的话,不仅能更好的使用CLR这个平台提供的强大的功能,而且能够构建更安全,更健壮的应用程序代码. 这篇博文里,就是使用托管…
http://blog.csdn.net/garyye/article/details/4788070   在使用VS进行托管应用程序的调试的时候,有的时候总感觉有些力不从心.譬如查看一个托管堆或者计算堆栈的时候,VS就不能胜任了.这个时候,Windbg+SOS扩展调试模块就为我们提供了一个很好的解决方案.我们看一段代码:class Program    {        static void Main(string[] args)        {            Program b…