视窗10

如何在不到一分钟的时间内解决Windows 10崩溃问题。

1.2.3.4.5.6.7.8.9 第5页
第5页,共9页

什么是符号,为什么需要它们

安装WinDbg后–但在调用转储文件之前–你需要符号表文件.软件的符号文件就像高速公路上的出口标志;如果你停在那里,它们会告诉你它的位置。它们是将源代码编译为可执行文件(从高级语言编译为机器码)的副产品。在这个过程中,编译器创建带有一系列标识符、它们在程序中的位置和属性的符号文件。

但是,程序执行时不需要这些信息,因此符号通常存储在单独的文件中。这减少了可执行文件的大小,从而减少了磁盘空间的使用,加快了加载和操作速度。此外,这些符号文件通常不会随操作系统或其来源的应用程序一起提供。因此,问题在于,当程序导致问题导致系统故障时,操作系统只知道问题发生的十六进制地址,而不知道谁在那里他在做什么。幸运的是,微软提供了对SymServ的访问,这解决了这个问题。

打开内存转储时,WinDbg查看可执行文件(.exe、.dll等)并提取版本信息。然后,它向Microsoft的SymServ创建一个请求,请求中包含版本信息,并定位要从中提取信息的精确符号表。如前所述,它不会下载正在进行故障排除的特定操作系统的所有符号;它将只下载它需要的东西。

在本例中,对于这台Windows 10 PC,符号文件夹的大小最终为22MB。在运行了大量的崩溃测试之后,该文件夹大约有35MB。在另一个系统上,我从几个不同的PC机上运行了许多测试,文件夹仍然低于100MB。请记住,如果您从其他机器(使用不同的操作系统)打开文件,您的文件夹可能会继续增大。

或者,您可以选择从Microsoft下载并存储完整的符号文件。在此之前,请注意,对于每个符号包,您应该至少有1GB的可用磁盘空间。这是因为,除了存储文件所需的空间外,还需要存储所需临时文件的空间。即使现在硬盘成本很低,所占用的空间也值得一提。

  • 每个x86符号包可能需要750 MB或更多的硬盘空间。
  • 每个x64符号包可能需要640 MB或更多。

除非另有说明,否则符号包是非累积的,因此,如果您使用的是SP2 Windows版本,则在安装SP2符号之前,需要先安装原始RTM版本和SP1版本的符号。

如果您想下载符号文件并将它们保存到本地(请确保下载前请阅读系统要求).

SymServ(又名:SymSrv/Symbol Table Server)是微软为确保准确的内存转储分析而免费提供的一项至关重要的服务。要使用它,只需配置WinDbg来定位它,SymServ将自动检索特定于转储所来自的Windows的确切版本的符号。而且,在分析了一台机器的转储文件后,如果您从另一台机器调用转储文件,WinDbg和SymServ也将自动检索该版本操作系统的符号。

1.2.3.4.5.6.7.8.9 第5页
第5页,共9页
资讯科技薪酬调查:结果是令人满意的