I have a crash dump of Eclipse and want to report a bug. For the bug report, I'd like to specify the version of Eclipse that crashed, since it might be related to the problem.
Unfortunately, my usual way does not work, lm vm
does not show version information:
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
The time stamp does not exactly correlate to release dates of Eclipse, so I wonder whether this was an official release or a nightly build.
Is there another method of determining the version number of Eclipse in the dump?
Splash screens to the rescue:
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"
I found this solution by searching the dump for potential version numbers in a hex editor, then building a command for WinDbg in case anyone else needs to find out the version of Eclipse.
Above script may of course break at any time when the splash screen file is renamed or Eclipse decides to not use a splash screen any more.