【问题标题】:Using WinDbg on Windows 2008 running .NET 4.7.1在运行 .NET 4.7.1 的 Windows 2008 上使用 WinDbg
【发布时间】:2019-06-05 21:03:36
【问题描述】:

我想调试在 Windows 2008 上运行的 .NET 4.7.1 应用程序。我面临的问题是 Windows Server SKD/WDK 支持 .NET 4.0 如何让 WinDbg 在 Windows 2008 上运行并调试 4.7.1 应用程序。

【问题讨论】:

    标签: windows debugging windows-server-2008 windbg


    【解决方案1】:

    一些说明。
    您可以尝试使用以下命令加载扩展:

    .cordll -ve -u -l


    不要忘记创建环境变量:

    _NT_SYMBOL_PATH = SRV*C:\symcache*http://msdl.microsoft.com/download/symbols;

    【讨论】:

    • WinDbg 不需要_NT_SYMBOL_PATH。它具有 a) 工作空间的概念,可以为不同目的保存不同的符号路径 b) .symfix C:\symcache 可以在不需要环境变量的情况下更改符号路径。
    • 使用微软的符号库很有用,因为它使堆栈视图更清晰,并且可以毫无问题地更改保存目录。
    • 我并不怀疑。 .symfix 正是这样做的
    • .simfix命令中隐含的目录:如果省略LocalSymbolCache,则使用调试器安装目录的sym子目录。
    【解决方案2】:

    SDK 可能包括一个 .NET 框架版本和一个 WinDbg 版本。但是,这并不意味着 WinDbg 版本和 .NET 版本链接在一起。事实上,WinDbg 没有任何对 .NET 的支持。

    .NET 框架本身提供对 .NET 的支持。无论安装什么 .NET 框架,它都会有一个 SOS.DLL:

    SOS 是 WinDbg 的调试扩展。它提供 .NET 特定的命令。

    您通常使用

    加载扩展程序
    .loadby sos clr
    

    这意味着:找出 CLR.DLL 所在的位置,并从同一文件夹中加载 SOS.DLL 作为扩展名。

    因此,只需使用您拥有的任何 WinDbg 版本并为进程使用的任何 .NET 版本加载扩展。

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2018-03-07
      相关资源
      最近更新 更多