从崩溃转储中确定 Eclipse 的版本

Determine version of Eclipse from crash dump

我有 Eclipse 的故障转储,想报告一个错误。对于错误报告,我想指定崩溃的 Eclipse 版本,因为它可能与问题有关。

不幸的是,我通常的方法不起作用,lm vm不显示版本信息:

0:048> lm vm eclipse
start             end                 module name
00000000`00400000 00000000`0044f000   eclipse    (deferred)             
    Image path: C:\Program Files\eclipse\eclipse.exe
    Image name: eclipse.exe
    Timestamp:        Wed Feb 04 14:12:28 2015 (54D21ABC)
    CheckSum:         00050686
    ImageSize:        0004F000
    File version:     0.0.0.0
    Product version:  0.0.0.0
    File flags:       0 (Mask 0)
    File OS:          0 Unknown Base
    File type:        0.0 Unknown
    File date:        00000000.00000000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

时间戳与 Eclipse 的发布日期不完全相关,所以我想知道这是官方发布还是每晚构建。

是否有其他方法可以确定转储中 Eclipse 的版本号?

启动画面来拯救:

0:048> .foreach (addr {s -[1]u  0000000 L?ffffffff`ffffffff "\splash.bmp"}) {du ${addr}-0n42 L0n31}
00000000`005f82dc  "4.4.2.v20150204-1700\splash.bmp"
00000000`005f97ce  "4.4.2.v20150204-1700\splash.bmp"
00000000`7200de06  "itdata"
00000000`7200de5e  "c%s"
00000000`e0f74a36  ""
00000000`e0f7cd86  "4.4.2.v20150204-1700\splash.bmp"
00000000`e0f9f3e0  "4.4.2.v20150204-1700\splash.bmp"

我通过在十六进制编辑器中搜索转储中的潜在版本号找到了这个解决方案,然后为 WinDbg 构建了一个命令,以防其他人需要找出 Eclipse 的版本。

当启动画面文件被重命名或 Eclipse 决定不再使用启动画面时,上述脚本当然可能随时中断。