你目前正处于脱机状态,正在等待 Internet 重新连接

如何设置 Windows NT 调试符号

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 148659
本文已归档。它按“原样”提供,并且不再更新。
概要


必须是 Windows NT 调试符号设置,如果一台计算机需要远程或本地调试。本文说明如何设置 Windows NT 调试符号。
更多信息

文章目录

  • 什么是符号
  • 设置自定义符号树
  • 单处理器和多处理器
  • 自定义 HAL.DLL
  • 在符号树之后创建

什么是符号

是必需的调试符号文件 (符号) 进行内核和用户模式调试在 Windows NT 符号中提供了一种方法来解决全局变量和函数中加载的可执行文件的名称。

符号生成链接器生成一个程序时。它们是超出了零售产品中去除,保存在一个单独的 (.DBG) 文件中。 这大大减小文件大小减小文件加载时,并因此提高了系统性能。符号表示 Function\API 名称和 $ 全局变量。

.DBG 文件包含每个文件的符号的信息。它们可找到 SUPPORT\DEBUG\ <platform>\SYMBOLS 目录的 Windows NT 安装光盘。

例如 Service pack 修补的生成需要一组特殊的符号的基版本和修补的符号的组合。

符号目录被分成称为扩展子目录 (请注意这些目录中的符号文件的很多匹配的 Windows NT USER MODE 组件) 的七个子目录:

   COM - symbols for all files ending in .COM go here   CPL - symbols for all files ending in .CPL go here.   DLL - symbols for all files ending in .DLL go here   DRV - symbols for all files ending in .DRV go here   EXE - symbols for all files ending in .EXE go here   SCR - symbols for all files ending in .SCR go here   SYS - symbols for all files ending in .SYS go here.


符号必须与他们各自的文件相匹配。从不同的生成的符号提供错误的信息。 所有符号文件的链接日期必须与正在调试的计算机上的匹配。

设置自定义符号树

符号树是在主机上包含与正在调试在远程计算机相匹配的符号文件的子目录树。
  1. 在主机上创建一个子目录。例如:
    MKDIR C:\SYMBOLS
  2. 始终从基本的 Windows NT 版本编号开始。复制下列文件从安装光盘的适当版本执行以下操作:
    XCOPY [光驱]: \SUPPORT\DEBUG\I386 C:\SYMBOLS /S.
  3. 将该符号为适当的服务包复制到该自定义控制台树中。 FTP.MICROSOFT.COM 上找不到服务包的符号。

    例如对于 Windows NT 3.51 Service Pack 4 符号可从以下位置下载:

    \bussys\winnt\winnt-public\fixes\usa\NT351\ussp4\symbols
    下载的文件称为 SYM_351 <x>.EXE 其中 X 表示该平台 (x 86 Alpha 的 A、 P 表示 PPC I)。

    解压缩到符号树中的文件。例如:
    <x>.EXE-d C:\SYMBOLS SYM_351
  4. 将任何第三方修补程序如 Compaq SSD 的符号复制到自定义的符号树。必须从第三方供应商处获取这些符号。
  5. 如果 Microsoft 已提供唯一的修补程序,用于您的安装,将复制到相应子目录中提供此修复程序的 DBG 文件 (例如: SYS,EXE,DLL)。
  6. 如果计算机是单个处理器 Intel 系统,符号树已完成。请参阅下面的"之后符号树是创建"部分。

单处理器和多处理器

Windows NT 针对 SMP 系统使用特殊的内核。在安装过程中被重命名此内核。很重要 DBF 文件也被重命名,以进行调试。

   NTOSKRNL.EXE  NTOSKRNL.DBG  = Single processor   NTKRNLMP.EXE  NTKRNLMP.DBG  = Multiple processors


如果系统是一个多处理器,请执行下列操作:
  1. 将目录更改到 DLL 组件目录。例如:
    CHDIR C:\SYMBOLS\DLL
  2. 在单处理器内核重命名另一个文件名。例如:
    重命名 NTOSKRNL.DBG NTOSKRNL.UNI
  3. 将多处理器内核复制单处理器内核。例如:
    COPY NTKRNLMP.DBG NTOSKRNL.DBG

自定义 HAL.DLL

某些硬件平台要求特殊的硬件抽象层 (HAL) 驱动程序。类似于在内核文件在安装过程中被重命名自定义 HAL。下面是一个常用的 hal 的列表:

对于 I386 的计算机的 HAL 文件:

Filename                   Description---------------------------------------------------HAL.DLL                    Standard HAL for Intel systemsHAL486C.DLL                HAL for 486 c step processorHALAPIC.DLL                Uniprocessor version of HALMPS.DLLHALAST.DLL                 HAL for AST SMP systemsHALCBUS.DLL                HAL for Cbus systemsHALMCA.DLL                 HAL for MCA-based systems (PS\2 and others)HALMPS.DLL                 HAL for most Intel multiprocessor systemsHALNCR.DLL                 HAL for NCR SMP computersHALOLI.DLL                 HAL for Olivetti SMP computersHALSP.DLL                  HAL for Compaq SystemproHALWYSE7.DLL               HAL for Wyse7 systemsHAL files for DEC Alpha Computers:Filename                   Description---------------------------------------------------HAL0JENS.DLL               Digital DECpc AXP 150 HALHALALCOR.DLL               Digital AlphaStation 600 FamilyHALAVANT.DLL               Digital AlphaStation 200\400 Family HALHALEB64P.DLL               Digital AlphaPC64 HALHALGAMMP.DLL               Digital AlphaServer 2x00 5\xxx Family HALHALMIKAS.DLL               Digital AlphaServer 1000 Family Uniprocessor HALHALNONME.DLL               Digital AXPpci 33 HALHALQS.DLL                  Digital Multia MultiClient Desktop HALHALSABMP.DLL               Digital AlphaServer 2x00 4\xxx Family HALHAL files for MIPS Computers:Filename                   Description---------------------------------------------------HALACR.DLL                 ACER HALHALDTI.DLL                 DESKStation EvolutionHALDUOMP.DLL               Microsoft-designed dual MP HALHALFXS.DLL                 MTI with a r4000 or r4400HALFXSPC.DLL               MTI with a r4600HALNECMP.DLL               NEC dual MPHALNTP.DLL                 NeTpower FASTseriesHALR98MP.DLL               NEC 4 processor MPHALSNI4X.DLL               Siemens Nixdorf UP and MPHALTYNE.DLL                DESKstation TyneHAL files for PPC Computers:Filename                   Description---------------------------------------------------HALCARO.DLL                HAL for IBM-6070HALEAGLE.DLL               HAL for Motorola PowerStack and Big BendHALFIRE.DLL                Hal for Powerized_ES,                                   Powerized_MX, and                                   Powerized_MX MPHALPOLO.DLL                HAL for IBM-6030HALPPC.DLL                 HAL for IBM-6015HALWOOD.DLL                HAL for IBM-6020


如何确定使用哪个 HAL:

在安装中,过程中创建文本日志文件。此文件提供了一系列的 HAL 安装在安装过程中的显示。如果原始的安装完成后更改了 HAL,该 SETUP.LOG 不反映更改。要验证,请执行下列操作:
  1. 请转到 %SystemRoot%\REPAIR 子目录。
  2. 运行 ATTRIB-R-H-S SETUP.LOG 以使其显示。
  3. 若要查看 SETUP.LOG 并搜索"Hal"使用写字板。
注: 此相同的技术可用于验证是否还使用一个特殊的内核。

复制 HAL 入符号树,请执行以下操作:
  1. 将目录更改为 \SYMBOLS\DLL。
  2. 重命名 HAL.X86 HAL.DBG。
  3. 将在"自定义 HLL.DBG"复制到 HAL.DBG。

在符号树之后创建

符号树已完成。有关详细信息的以下单词此处 Microsoft 知识库中相应的查询:
debugref
3.50 3.51 prodnt debugref

警告:本文已自动翻译

属性

文章 ID:148659 - 上次审阅时间:12/04/2015 14:23:44 - 修订版本: 3.1

Microsoft Windows NT Workstation 3.5, Microsoft Windows NT Workstation 3.51, Microsoft Windows NT Server 3.5, Microsoft Windows NT Server 3.51

  • kbnosurvey kbarchive kbmt KB148659 KbMtzh
反馈