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

gdb*_*gdb 17 symbols

  1. 带有Service Pack 3 x86零售符号的Windows XP,所有语言(文件大小:209 MB - 大多数客户都需要此软件包.)
  2. Windows XP Service Pack 3 x86选中符号,所有语言(文件大小:202 MB)

引自这里.

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

Gre*_*ill 12

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


小智 5

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

正如Greg所解释的那样,调试符号基本上是一个地址.据我所知,它们基本上是内存中函数或项的正确名称,因此当用户调试进程或查看callstack时,他或她将能够看到可用信息而不是地址偏移.

格雷格已经回答了这个问题,但我会尽力详细说明.Windows的零售和调试版本需要不同版本的符号,因为操作系统文件的编译方式不同,以包含更多有用的调试信息.这使得符号的地址移动得如此轻微,因此需要不同的包来正确识别内存中的所有内容.

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

祝你好运gdb.