Windows NT 4.0 内核调试失败记

2012年6月17日

Windows NT 4.0 内核调试失败记

本周本来想用 Virtual PC 2007 SP1 安装 Windows NT Workstation 4.0,然后从宿主机使用 WinDbg 6.7.0005.1 对其进行内核调试。最后还是失败。大致步骤如下:

1. 在 VPC 内安装 NT SP1。
2. 安装 NT SP6a。
3. 修改 boot.ini 文件打开调试开关。
4. 虚拟机关机。修改 VPC 虚拟机配置指定 COM2 端口(默认的调试端口)指向命名管道 \\.\pipe\nt4com2。
5. 启动 NT SP6a 进入调试模式。
6. 使用 WinDbg 进入内核调试模式,连接到命名管道 \\.\pipe\nt4com2。
7. 起先使用 http://msdl.microsoft.com/download/symbols 作为符号文件服务器。
7.1 键入 k。能显示调用栈。能显示 nt 中的函数名。
7.2 键入 g。无法继续运行,显示 Unable to get program counter ‘g’。如果运行 t,也是类似。
7.3 键入 dt nt!_eprocess。无法显示此类型。
8. 然后因为在网上搜索 NT 4.0 调试的网页,有人说 msdl 上的符号文件最低只支持到 Windows 2000。
9. 安装另一个 NT SP1。并配置调试开关。
10. 启动 NT SP1 进入调试模式。
11. WinDbg 连接。使用 SP1 自带符号文件(在 _NT_SYMBOL_PATH 中指定单独的 NTSP1SYM 目录,其中有 DLL、EXE、SYS 等子目录)。
12. WinDbg 使用 !sym noisy,.reload ntoskrnl。能见到正确的 ntoskrnl.dbg 被加载。
13. 键入 lm,能显示出 ntoskrnl.dbg 的信息。
14. 键入 g,仍然显示 Unable to get program counter ‘g’。
15. 键入 dt nt!_eprocess,仍然无法显示。

搜了好多网页。看看配置应该是正确的。实在没辙。撤。下回换用 Win 2000 试试。

“Windows NT 4.0 内核调试失败记” 已有 2 条评论

  1. 高博

    Symbol不对吗?

  2. Robbie Mosaic 在

    可能的。有可能拿到的 Symbol 是 Stripped Down 的版本,把一些东西去掉了。另外,似乎也得有一些特殊的暗号才能让它跑起来?至少后来试的 Windows 2000 是能自己跑起来的。而到了 2000 SP4 已经有可见的 Symbol 了。等有空了发一篇上来。

留下您的评论