Dear XEmacs developers and users,
I am attempting to compile the native port of XEmacs (tip of the
"default" branch in
https://bitbucket.org/xemacs/xemacs) with VS 2015
Community ('free') edition on a Windows 7 64-bit machine. I saw HST's
report at
http://list-archive.xemacs.org/pipermail/xemacs-beta/2015-July/025761.html,
and applied the patch in that email to the tip. (It sounded like the
patch allowed HST to compile a working copy of XEmacs). Unfortunately,
the copy I end up with crashes in pdump, with the following stack
trace (viewed in WinDbg):
0:000:x86> k
ChildEBP RetAddr
00a8db08 00b15865 xemacs!pdump_load_finish+0x1cc
[c:\home\src\xemacs-beta\src\dumper.c @ 2350]
00a8fb44 00b6f134 xemacs!pdump_load+0x205
[c:\home\src\xemacs-beta\src\dumper.c @ 2793]
00a8fbd8 00b6ff2c xemacs!xemacs_21_5_b34_i586_pc_win32+0xa64
[c:\home\src\xemacs-beta\src\emacs.c @ 1408]
00a8fe00 00d2abae xemacs!main+0x24c [c:\home\src\xemacs-beta\src\emacs.c @ 3204]
00a8fe14 00d2aa7a xemacs!invoke_main+0x1e
[f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 74]
00a8fe6c 00d2a91d xemacs!__scrt_common_main_seh+0x15a
[f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 264]
00a8fe74 00d2abc8 xemacs!__scrt_common_main+0xd
[f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 309]
00a8fe7c 74d3336a xemacs!mainCRTStartup+0x8
[f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17]
00a8fe88 76f89882 kernel32!BaseThreadInitThunk+0xe
00a8fec8 76f89855 ntdll32!__RtlUserThreadStart+0x70
00a8fee0 00000000 ntdll32!_RtlUserThreadStart+0x1b
The line at which the segmentation violation occurs is marked with an
ASCII arrow:
/* Put back the pdump_root_block_ptrs */
p = (Rawbyte *) ALIGN_PTR (p, pdump_static_pointer);
for (i = 0; i < header->nb_root_block_ptrs; i++)
{
pdump_static_pointer ptr = PDUMP_READ (p, pdump_static_pointer);
#ifdef NEW_GC
(* ptr.address) = (Rawbyte *) pdump_get_mc_addr (ptr.value);
#else /* not NEW_GC */
-> (* ptr.address) = ptr.value + delta;
#endif /* not NEW_GC */
}
The header record looks like this:
dt header
Local var @ 0xa8daf8 Type pdump_header*
0x010c32b0
+0x000 signature : [8] "XEmacsDP"
+0x008 id : 0x55fabbe2
+0x00c stab_offset : 0x22df98
+0x010 reloc_address : 0
+0x014 nb_root_block_ptrs : 0n76
+0x018 nb_root_blocks : 0n135
+0x01c nb_cv_data : 0n0
+0x020 nb_cv_ptr : 0n0
the ptr record looks like this:
dt ptr
Local var @ 0xa8daa8 Type pdump_static_pointer
+0x000 address : 0x00906014 -> ????
+0x004 value : 0x001ccc74 "--- memory read error at
address 0x001ccc74 ---"
The memory at ptr.address doesn't appear to be accessible (hence the crash).
I have checked the FAQ/PROBLEMS, and none of the entries about pdump
crashes appear to apply: I am not compiling with optimization, and I
am not trying to use system's memory allocator under Cygwin. The
crash does reproduce reliably for me, so I can keep poking at it.
Does someone have suggestions on where to look next?
On another note, i.exe causes an assertion failure for me as well (HST
worked around it by not using i.exe, but it isn't clear how batch
compilation would work without i.exe).
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta