Building Perl@11564 on Windows 2000 with Visual Studio 6 SP5 and
compiling threads-0.03 gets a core dump on test.pl.
C:\perl11564\bin\perl.exe -Iblib\arch -Iblib\lib test.pl
1..12
ok 1
ok 2 # skip The ignores are here to keep test numbers correct
ok 3
ok 3 # skip Ignore
ok 4
ok 4 # skip Ignore
ok 5
ok 5 # skip Ignore
ok 6
ok 7 # skip Ignore
ok 7
ok 8
ok 9 # skip thread trees are unsafe under win32
ok 10 # skip Ignore
Here's a stack trace:
VMem::Free(void * 0x0ef91a68) line 390 + 3 bytes
CPerlHost::Free(void * 0x0ef91a68) line 66 + 34 bytes
PerlMemFree(IPerlMem * 0x0ef910c4, void * 0x0ef91a68) line 276
Perl_safesysfree(void * 0x0ef91a68) line 145 + 26 bytes
perl_clone_using(interpreter * 0x0ddff004, unsigned long 4, IPerlMem *
0x0ef910c4, IPerlMem * 0x0ef910e0, IPerlMem * 0x0ef910fc, IPerlEnv *
0x0ef91118, IPerlStdIO * 0x0ef91150, IPerlLIO * 0x0ef911ec, IPerlDir *
0x0ef91254, IPerlSock * 0x0ef91280, IPerlProc * 0x0ef91330) line 10299 +
9 bytes
perl_clone_host(interpreter * 0x0ddff004, unsigned long 4) line 416 +
103 bytes
perl_clone(interpreter * 0x0ddff004, unsigned long 4) line 9562 + 13
bytes
thread_create(char * 0x0de0a62c, sv * 0x00000000, sv * 0x00000000) line
120 + 11 bytes
XS_threads_create(interpreter * 0x0ddff004, cv * 0x0de479d0) line 320 +
32 bytes
Perl_pp_entersub(interpreter * 0x0ddff004) line 2713 + 16 bytes
Perl_runops_debug(interpreter * 0x0ddff004) line 53 + 13 bytes
S_call_body(interpreter * 0x0ddff004, op * 0x0ef7ff38, int 0) line 1917
+ 13 bytes
Perl_call_sv(interpreter * 0x0ddff004, sv * 0x0ddfdfb4, long 2) line
1796 + 15 bytes
thread_run(void * 0x01ba6fe0) line 55 + 20 bytes
KERNEL32! 77e8758a()
The only changes to win32/Makefile are:
$ diff Makefile.FCS Makefile
23c23
< INST_TOP = $(INST_DRV)\perl
---
> INST_TOP = $(INST_DRV)\perl11564
69c69
< USE_PERLIO = define
---
> #USE_PERLIO = define
97c97
< #CCTYPE = MSVC60
---
> CCTYPE = MSVC60
102c102
< #CFG = Debug
---
> CFG = Debug
Even when compiling with USE_PERLIO, Perl coredumps.
This could be relates to the core dump seen on Linux.
Here are the values of the variables.
- next 0x0f011b68 ""
CXX0030: Error: expression cannot be evaluated
nsize 671167518
- ptr 0x0ef91a68 "��"
180 '�'
size 524544
- this 0x0ef91408
- __vfptr 0x2810ad38 const VMem::`vftable'
[0] 0x280f2100 VMem::Malloc(unsigned int)
[1] 0x280f221a VMem::Realloc(void *, unsigned int)
[2] 0x280f23cc VMem::Free(void *)
[3] 0x280f24b1 VMem::GetLock(void)
[4] 0x280f24cb VMem::FreeLock(void)
[5] 0x280f24e5 VMem::IsLocked(void)
[6] 0x280f24f2 VMem::Release(void)
[7] 0x280f2542 VMem::AddRef(void)
m_hHeap 0x121b0000
- m_FreeDummy 0x0ef91410 ""
[0] 0 ''
[1] 0 ''
[2] 0 ''
[3] 0 ''
[4] 0 ''
[5] 0 ''
[6] 0 ''
[7] 0 ''
[8] 80 'P'
[9] 0 ''
[10] 28 ''
[11] 18 ''
[12] 40 '('
[13] 36 '$'
[14] 31 ''
[15] 18 ''
- m_pFreeList 0x0ef91418 "P"
80 'P'
- m_pRover 0x0ef91418 "P"
80 'P'
- m_heaps 0x0ef91428
- [0] {...}
- base 0x121c0048 ""
1 ''
len 65536
+ [1] {...}
+ [2] {...}
+ [3] {...}
+ [4] {...}
+ [5] {...}
+ [6] {...}
+ [7] {...}
+ [8] {...}
+ [9] {...}
+ [10] {...}
+ [11] {...}
+ [12] {...}
+ [13] {...}
+ [14] {...}
+ [15] {...}
+ [16] {...}
+ [17] {...}
+ [18] {...}
+ [19] {...}
+ [20] {...}
+ [21] {...}
+ [22] {...}
+ [23] {...}
+ [24] {...}
+ [25] {...}
+ [26] {...}
+ [27] {...}
+ [28] {...}
+ [29] {...}
+ [30] {...}
+ [31] {...}
+ [32] {...}
+ [33] {...}
+ [34] {...}
+ [35] {...}
+ [36] {...}
+ [37] {...}
+ [38] {...}
+ [39] {...}
+ [40] {...}
+ [41] {...}
+ [42] {...}
+ [43] {...}
+ [44] {...}
+ [45] {...}
+ [46] {...}
+ [47] {...}
+ [48] {...}
+ [49] {...}
+ [50] {...}
+ [51] {...}
+ [52] {...}
+ [53] {...}
+ [54] {...}
+ [55] {...}
+ [56] {...}
+ [57] {...}
+ [58] {...}
+ [59] {...}
+ [60] {...}
+ [61] {...}
+ [62] {...}
+ [63] {...}
m_nHeaps 4
m_lAllocSize 1048576
m_lRefCount 1
- m_cs {...}
- DebugInfo 0x014160b0
Type 0
CreatorBackTraceIndex 0
- CriticalSection 0x0ef91634
- DebugInfo 0x014160b0
Type 0
CreatorBackTraceIndex 0
- CriticalSection 0x0ef91634
+ DebugInfo 0x014160b0
LockCount -1
RecursionCount 0
OwningThread 0x00000000
LockSemaphore 0x00000000
SpinCount 0
- ProcessLocksList {...}
+ Flink 0x014160d8
+ Blink 0x01416098
EntryCount 0
ContentionCount 0
+ Spare 0x014160c8
LockCount -1
RecursionCount 0
OwningThread 0x00000000
LockSemaphore 0x00000000
SpinCount 0
- ProcessLocksList {...}
- Flink 0x014160d8
- Flink 0x014160f8
- Flink 0x01416118
+ Flink 0x77fcf010
+ Blink 0x014160f8
+ Blink 0x014160d8
+ Blink 0x014160b8
+ Blink 0x01416098
EntryCount 0
ContentionCount 0
- Spare 0x014160c8
[0] 0
[1] 0
LockCount -1
RecursionCount 0
OwningThread 0x00000000
LockSemaphore 0x00000000
SpinCount 0
Summary of my perl5 (revision 5 undef) configuration:
Platform:
osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
usethreads=undef use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=undef d_sfio=undef uselargefiles=undef usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cl', ccflags ='-nologo -Gf -W3 -Od -MD -Zi -DDEBUGGING -DWIN32
-D_CONSOLE -DNO_STRICT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-DPERL_MSVCRT_READFIX',
optimize='-Od -MD -Zi -DDEBUGGING',
cppflags='-DWIN32'
ccversion='undef', gccversion='', gccosandvers='undef'
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=4
alignbytes=8, prototype=define
Linker and Libraries:
ld='link', ldflags ='-nologo -nodefaultlib -debug -pdb:none
-libpath:"c:\perl11564\lib\CORE" -machine:x86'
libpth=C:\PROGRA~1\MIAF9D~1\VC98\lib
libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib msvcrt.lib
perllibs=undef
libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl57.lib
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug
-pdb:none -libpath:"c:\perl11564\lib\CORE" -machine:x86'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
Locally applied patches:
DEVEL11563
Built under MSWin32
Compiled at Aug 5 2001 12:03:19
@INC:
c:/perl11564/lib
c:/perl11564/site/lib
.