零售符号和检查符号之间有什么区别?

时间:2011-04-25 06:36:38

标签: symbols

  1. Windows XP Service Pack 3 x86零售符号,所有语言(文件大小:209 MB - 大多数客户都需要此软件包。)
  2. Windows XP Service Pack 3 x86已检查符号,所有语言(文件大小:202 MB)
  3. 引自here

    零售符号和已检查符号之间有什么区别?

3 个答案:

答案 0 :(得分:12)

通常,“零售”和“已检查”之间的差异类似于“发布”与“调试”构建。 Microsoft提供了两个不同的内核,一个用于常规编译,另一个用于额外的调试信息。两个不同的版本也有两个不同的符号表。

答案 1 :(得分:5)

如果您是大学的IT或计算机科学专业的学生(或者您碰巧可以访问MSDN的电子学院软件),您可能可以访问Windows Vista / 7的特殊调试/检查版本。软件开发和工程行业的一些专业人员也可能安装了特殊的调试版本。否则,无论您遇到家庭版还是专业版 - 甚至企业版和商业版 - 它很可能都是零售版。所有这些版本都需要零售版本的调试符号。但是,如果安装了Windows的调试/检查版本,则需要选中已检查的调试符号。

正如Greg所解释的,调试符号基本上是一个地址。据我所知,它们基本上是内存中函数或项目的正确名称,因此当用户调试进程或查看callstack时,他或她将能够看到可用信息而不是地址偏移。 / p> 格雷格已经回答了这个问题,但我会尽力详细说明。 Windows的零售和调试版本需要不同版本的符号,因为操作系统文件的编译方式不同,以包含更多有用的调试信息。这使得符号的地址移动得如此轻微,因此需要使用不同的包来正确识别内存中的所有内容。

我很困惑的一件事是为什么被检查的符号包更小。我原以为它会更大。大师可能知道原因。说到这,我想说清楚我不是调试器。我只是着迷于它背后的科学。尽管如此,我希望这能帮到你。

祝你好运gdb。

答案 2 :(得分:1)

出于实际目的,在Microsoft文章https://developer.microsoft.com/en-us/windows/hardware/download-symbols中给出了两个软件包的描述。准确地说,

"几乎所有客户都需要零售版的符号。如果您正在调试具有额外调试信息的特殊版本的Windows,则应下载已选中版本的符号。"

换句话说,您很可能需要零售版本。