培训
模块
使用 Visual Studio 调试器,以交互方式调试 .NET 应用 - Training
了解如何使用 Visual Studio 高效调试 .NET 应用以快速修复 bug。 使用 Visual Studio 中的交互式调试器分析和修复 C# 应用程序。
作者:Mark Russinovich 和 Ken Johnson
发布日期:2020 年 4 月 28 日
下载 LiveKd (700 KB)
LiveKD 是我为《Inside Windows 2000,第 3 版》随附 CD 编写的实用工具,现已免费提供。 使用 LiveKD,可以在实时系统上本地运行 Kd 和 Windbg Microsoft 内核调试程序,它们是 Windows 调试工具包的一部分。 执行处理故障转储文件的所有调试程序命令,以深入查看系统内部情况。 有关如何使用内核调试程序浏览系统的信息,请参阅 Windows 调试工具文档和我们的书籍。
虽然最新版本的 Windbg 和 Kd 在 Windows Vista 和 Server 2008 上具有类似的功能,但与 Windbg 和 Kd 自有的实时内核调试功能相比,LiveKD 实现的功能更多,例如使用 !thread 命令查看线程堆栈。
首先从 Microsoft 网站下载并安装 Windows 调试工具包:
https://msdn.microsoft.com/library/windows/hardware/ff551063(v=vs.85).aspx
如果将工具安装到其默认目录 \Program Files\Microsoft\Debugging Tools for Windows,则可以从任何目录运行 LiveKD;否则,应将 LiveKD 复制到安装工具的目录。
如果还没有为运行 LiveKD 的系统安装符号,LiveKD 将询问你是否希望它自动配置系统以使用 Microsoft 的符号服务器(有关符号文件和 Microsoft 符号服务器的信息,请参阅 Windows 调试工具文档)。
注意:Microsoft 调试程序会报错,标识找不到 LIVEKDD.SYS 的符号。 这是意料之中的,因为我没有为 LIVEKDD.SYS 提供符号,并且它不会影响调试程序的行为。
用法:
liveKd [[-w]|[-k <debugger>]|[-o filename]] [-vsym] [-m[flags] [[-mp process]|[pid]]][debugger options]
liveKd [[-w]|[-k <debugger>]|[-o filename]] -ml [debugger options]
liveKd [[-w]|[-k <debugger>]|[-o filename]] [[-hl]|[-hv <VM name> [[-p]|[-hvd]]]] [debugger options]
参数 | 说明 |
---|---|
-hv | 指定要调试的 Hyper-V VM 的名称或 GUID。 |
-hvd | 包含虚拟机监控程序页(仅限 Windows 8.1 及更高版本)。 |
-hvl | 列出正在运行的 Hyper-V VM 的名称和 GUID。 |
-k | 指定要执行的调试程序映像的完整路径和文件名 |
-m | 创建镜像转储,这是内核内存的一致视图。 只有内核模式内存可用,并且此选项可能需要大量的可用物理内存。 可以选择提供用于指定要包含哪个区域的标志掩码(提取自下表,默认为 0x18F8): 0001 - 处理专用,0002 - 映射文件, 0004 - 共享部分,0008 - 页表页, 0010 - 分页池,0020 - 非分页池, 0040 - 系统 PTE,0080 - 会话页, 0100 - 元数据文件,0200 - AWE 用户页, 0400 - 驱动程序页,0800 - 内核堆栈, 1000 - WS 元数据,2000 - 大页面 默认值可捕获大多数内核内存内容,建议使用。 此选项可与 -o 一起使用,以更快地保存一致的转储。 镜像转储需要 Windows Vista 或 Windows Server 2008 或更高版本。 Sysinternals RamMap 提供了可选择以包含的可用内存区域分布的图形摘要。 |
-ml | 使用本机支持生成实时转储(仅限 Windows 8.1 及更高版本)。 |
-mp | 指定单个进程,其用户模式内存内容应包含在镜像转储中。 仅对 -m 选项有效。 |
-o | 将 memory.dmp 保存到磁盘,而不是启动调试程序。 |
-p | 在 LiveKd 处于活动状态时暂停目标 Hyper-V VM(议与 -o 一起使用)。 指定要调试的 Hyper-V VM 的名称或 GUID。 |
-hvl | 列出正在运行的 Hyper-V VM 的名称和 GUID。 |
-vsym | 显示有关符号加载操作的详细调试信息。 |
-w | 运行 windbg 而不是 kd |
所有其他选项将直通传递到调试程序。
注意:如果调试程序挂起,请使用 Ctrl-Break 终止并重启调试程序。
默认情况下,LiveKd 会运行 kd.exe。
下载 LiveKd (700 KB)
运行平台:
培训
模块
使用 Visual Studio 调试器,以交互方式调试 .NET 应用 - Training
了解如何使用 Visual Studio 高效调试 .NET 应用以快速修复 bug。 使用 Visual Studio 中的交互式调试器分析和修复 C# 应用程序。