WinDbg 的 vertarget 命令总是准确的吗?

Is WinDbg's vertarget command always accurate?

我想知道,因为 运行 它在客户的小型转储中报告的 Windows 版本与客户反复告诉我的不同,而我报告的版本恰好是与我 运行 WinDbg 相同的版本。

所以我想知道,vertarget 是否始终可信(而客户端不可信),或者它所依赖的信息可能不存在某些转储生成选项,以及它何时报告 WinDbg 当前 运行 的版本,或者可能只是一些默认值恰好与我的 OS 版本一致?

我正在使用 WinDbg 6.12。

到目前为止,在我的所有情况下,vertarget 都是正确的,而 customer/client 犯了一个错误 - vertarget 是我用于每个转储的命令之一,正是为了检查转储是否包含我需要的内容的目的。

但也许,这里也可能出现问题,所以让我们评估一些选项:

  1. vertarget 还报告调试会话时间和系统正常运行时间。那些也符合你的系统吗?重新启动系统以获得较短的系统正常运行时间并再次检查。它仍然是您 PC 的正常运行时间吗?

  2. vertarget 还会报告 CPU 的数量。这个号码和你的号码一致吗?

  3. 获取没有您的 OS 的虚拟机,例如一个来自 Modern.IE (Microsoft)。将 WinDbg 和转储复制到 VM 并再次检查 vertarget 的输出。

  4. WinDbg 6.12 is a bit old。较新的版本(6.2.9200 / 6.3.9600 甚至 10.0)是否提供相同的信息,或者是否已经修复了错误?

甚至查看一些其他信息:

  1. 它是正确应用程序的转储吗?使用|(管道)

  2. 它是您期望的版本的转储吗?使用 lm vm <exename>

  3. 它是否具有用于进行转储的方法所期望的标志?使用 .dumpdebug.

除此之外,我观察到(不代表)许多客户端 OS 版本转储(Windows 7、8、8.1)安装了所有最新的服务包,而管理员似乎遵循 "never change a running system" 服务器 OS 的方法(Windows Server 2012,R2)。所以这可能只是巧合。