【发布时间】: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
我想调试在 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
一些说明。
您可以尝试使用以下命令加载扩展:
.cordll -ve -u -l
不要忘记创建环境变量:
_NT_SYMBOL_PATH = SRV*C:\symcache*http://msdl.microsoft.com/download/symbols;
【讨论】:
_NT_SYMBOL_PATH。它具有 a) 工作空间的概念,可以为不同目的保存不同的符号路径 b) .symfix C:\symcache 可以在不需要环境变量的情况下更改符号路径。
.symfix 正是这样做的
SDK 可能包括一个 .NET 框架版本和一个 WinDbg 版本。但是,这并不意味着 WinDbg 版本和 .NET 版本链接在一起。事实上,WinDbg 没有任何对 .NET 的支持。
.NET 框架本身提供对 .NET 的支持。无论安装什么 .NET 框架,它都会有一个 SOS.DLL:
SOS 是 WinDbg 的调试扩展。它提供 .NET 特定的命令。
您通常使用
加载扩展程序.loadby sos clr
这意味着:找出 CLR.DLL 所在的位置,并从同一文件夹中加载 SOS.DLL 作为扩展名。
因此,只需使用您拥有的任何 WinDbg 版本并为进程使用的任何 .NET 版本加载扩展。
【讨论】: