• windbg sos版本不匹配问题解决


    dumpheap 时提示:

    0:105> !dumpheap -stat
    The garbage collector data structures are not in a valid state for traversal.
    It is either in the "plan phase," where objects are being moved around, or
    we are at the initialization or shutdown of the gc heap. Commands related to
    displaying, finding or traversing objects as well as gc heap segments may not
    work properly. !dumpheap and !verifyheap may incorrectly complain of heap
    consistency errors.
    Error requesting GC Heap data
    Unable to build snapshot of the garbage collector state

    这种情况大部分是由于sos版本不匹配导致:

    0:105> .cordll –ve –u –l

    CLRDLL: Loaded DLL C:WindowsMicrosoft.NETFramework64v4.0.30319mscordacwks.dll
    CLR DLL status: Loaded DLL C:WindowsMicrosoft.NETFramework64v4.0.30319mscordacwks.dll

    .cordll –ve –u –l (小写的L ) 这个命令是控制调试和控制CLR的命令,-ve是显示详细信息,-u 卸载模块,-l (小写的L) 是加载模块,上面这个命令就是卸载CLR 调试模块,然后再加载CLR调试模块,并显示详细信息

    貌似已经加载正确,此时,重新运行dumpheap,错误仍然存在。

    当前系统mscordacwks.dll版本和dump来源系统版本不同,将来源系统对应版本的mscordacwks.dll复制到对应的搜索目录(Symbol File Path、Source File Path和Image File Path都可以),并重新加载。这个时候你会发现在Symbol File Path已经下载了对应的mscordacwks.dll运行时版本,比如:mscordacwks_AMD64_AMD64_4.0.30319.01.dll4BA21EEB965000mscordacwks_AMD64_AMD64_4.0.30319.01.dll。

    调试机器和来源机器SOS.dll、clr.dll版本不一致,将来源机器的两个文件复制到一个指定目录。用.load命令加载这个版本的sos,再次执行~* e !clrstack,运行成功。之后执行sos的任何命令WinDbg都会提示如下信息(暂时忽略它):

    http://www.cnblogs.com/junchu25/archive/2012/09/04/2670540.html

    0:105> .chain
    Extension DLL search Path:
        D:windbgWINXP;D:windbgwinext;D:windbgwinextarcade;D:windbgpri;D:windbg;D:windbgwinextarcade;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:Program Files7-Zip;D:Program Files (x86)Microsoft SQL Server100ToolsBinn;D:Program FilesMicrosoft SQL Server100ToolsBinn;D:Program FilesMicrosoft SQL Server100DTSBinn;D:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDE;D:Program Files (x86)Microsoft SQL Server100DTSBinn;C:WindowsSystem32WindowsPowerShellv1.0;D:Program FilesJavajdk1.6.0_25in;D:Program FilesJavajdk1.6.0_25JREin
    Extension DLL chain:
        sosex: image 4.5.0.0, API 1.0.0, built Wed Oct 03 22:57:55 2012
            [path: D:windbgsosex.dll]
     
       sos: image 4.0.30319.18408, API 1.0.0, built Thu Sep 06 14:07:11 2012
            [path: D:windbgsos.dll]

        C:WindowsMicrosoft.NETFramework64v4.0.30319sos: image 4.0.30319.18408, API 1.0.0, built Thu Sep 12 08:02:43 2013
            [path: C:WindowsMicrosoft.NETFramework64v4.0.30319sos.dll]
        dbghelp: image 6.13.0001.776, API 6.1.6, built Sat May 15 04:57:22 2010
            [path: D:windbgdbghelp.dll]
        ext: image 6.13.0001.776, API 1.0.0, built Sat May 15 04:57:40 2010
            [path: D:windbgwinextext.dll]
        exts: image 6.13.0001.776, API 1.0.0, built Sat May 15 04:57:13 2010
            [path: D:windbgWINXPexts.dll]
        uext: image 6.13.0001.776, API 1.0.0, built Sat May 15 04:57:09 2010
            [path: D:windbgwinextuext.dll]
        ntsdexts: image 6.1.7752.0, API 1.0.0, built Sat May 15 04:52:37 2010
            [path: D:windbgWINXP tsdexts.dll]

    貌似加载了两个sos.dll

    0:105> .unload sos
    Unloading sos extension DLL
    0:105> .chain
    Extension DLL search Path:
        D:windbgWINXP;D:windbgwinext;D:windbgwinextarcade;D:windbgpri;D:windbg;D:windbgwinextarcade;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:Program Files7-Zip;D:Program Files (x86)Microsoft SQL Server100ToolsBinn;D:Program FilesMicrosoft SQL Server100ToolsBinn;D:Program FilesMicrosoft SQL Server100DTSBinn;D:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDE;D:Program Files (x86)Microsoft SQL Server100DTSBinn;C:WindowsSystem32WindowsPowerShellv1.0;D:Program FilesJavajdk1.6.0_25in;D:Program FilesJavajdk1.6.0_25JREin
    Extension DLL chain:
        C:WindowsMicrosoft.NETFramework64v4.0.30319sos: image 4.0.30319.18408, API 1.0.0, built Thu Sep 12 08:02:43 2013
            [path: C:WindowsMicrosoft.NETFramework64v4.0.30319sos.dll]
        dbghelp: image 6.13.0001.776, API 6.1.6, built Sat May 15 04:57:22 2010
            [path: D:windbgdbghelp.dll]
        ext: image 6.13.0001.776, API 1.0.0, built Sat May 15 04:57:40 2010
            [path: D:windbgwinextext.dll]
        exts: image 6.13.0001.776, API 1.0.0, built Sat May 15 04:57:13 2010
            [path: D:windbgWINXPexts.dll]
        uext: image 6.13.0001.776, API 1.0.0, built Sat May 15 04:57:09 2010
            [path: D:windbgwinextuext.dll]
        ntsdexts: image 6.1.7752.0, API 1.0.0, built Sat May 15 04:52:37 2010
            [path: D:windbgWINXP tsdexts.dll]


    此时,只有一个sos了,在运行dumpheap试试:

    0:105> !dumpheap -stat
    Statistics:
                  MT    Count    TotalSize Class Name
    000007fef29fd978        1           24 System.Xml.Linq.XHashtable`1[[System.WeakReference, mscorlib]]
    000007fef29fd880        1           24 System.Xml.Linq.XHashtable`1[[System.Xml.Linq.XName, System.Xml.Linq]]

    推荐隔椅同事的文章,列举了各种可能:

    http://www.cnblogs.com/softfair/p/The_version_SOS_not_match_version_of_CLR_PDB_symbol_for_clr_dll_not_loaded.html

    SRV*c:mysymbol* http://msdl.microsoft.com/download/symbols

  • 相关阅读:
    windows下部署MySQL 8.0.11
    基于beego构建Restful API服务
    Go 并发
    Go语言的面向对象(OOP)
    Go基础语法纪要
    软件工程基础图式(第四章 系统设计-面向过程的系统设计)
    概率论与数理统计图式(第三章 多维随机变量)
    编译技术图式(第四章 语法分析)01文法和语法的定义
    计算机组成原理和结构图式(第三章 CPU子系统)
    Java图式(第三章 流程控制、数组)
  • 原文地址:https://www.cnblogs.com/thaughtZhao/p/4184670.html
Copyright © 2020-2023  润新知