On Sat, Oct 9, 2010 at 12:51 AM, Samuel Bronson <naesten(a)gmail.com> wrote:
Anyway, as the configuration information I pasted shows, this was
built with "cl", MS's C compiler (or a drop-in replacement?). MS's
compiler hasn't supported having debugging symbols in the executable
file itself for quite some time. Instead, they are kept in separate
files, with the extension ".pdb" (assuming they were built; I don't
think this is mandatory *yet*). Anyway, judging by the last few bytes
of the executable, they were in this case:
00b80000: 4e42 3130 0000 0000 d345 394a 0100 0000 NB10.....E9J....
00b80010: 433a 5c58 456d 6163 7342 7569 6c64 5c78 C:\XEmacsBuild\x
00b80020: 656d 6163 732d 3231 2e35 2e32 395c 7372 emacs-21.5.29\sr
00b80030: 635c 7865 6d61 6373 2e70 6462 00 c\xemacs.pdb.
(I'm slightly surprised that they're in a file called xemacs.pdb and
not temacs.pdb.)
Anyway, suffice to say that this file was not installed along with the
executable. And yes, MS's tools would have been able to find it there
if it had -- they don't assume that the symbols are still at the path
they were built at. (Unlike, say, `find-function' w.r.t. elisp
files...)
Oh, one more thing: like I said before, I have a minidump file from
the crash, which is rather like a core dump. It has the contents of
the stack area at the time of the crash, so with it and the .pdb a
somewhat better stack trace is still possible -- I'm not sure what
could be done with the pointer arguments, but at least the
functions/source locations and scalar arguments should be recoverable,
assuming that the symbols aren't "public" symbols (which are stripped
of all the local variable/argument/source location information, and
only contain enough information to reconstruct the stack along with
the global symbol names).
The term "minidump" is something of a misnomer; once upon a time, a
"dump" contained all the data that MS's tools could dump from a
crashed process, but they were kind of big and so MS created the
"minidump" format which allowed some of the information to be omitted.
Consequently, it had headers telling which information was included;
fast forward to now and, guess what, a "full dump" actually contains
*less* information than the most complete minidump can.
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta