Fri Jun 06 10:32:34 2014: Request 96279 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: "Perl -MO=Xref Win32/API.pm" (0.74, 0.77) gives runtime error on
Perl 5.12.4
Broken in: 0.74, 0.77
Severity: Normal
Owner: Nobody
Requestors: [email protected]
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=96279 >
I am using a slightly different command line, "perl -MO=Xref -MWin32::API
-E"0"". Its generating a segv as you have.
I get
First-chance exception at 0x100018e2 (B.dll) in : 0xC0000005: Access violation
reading location 0x0000000a.
callstack
B.dll!make_sv_object(interpreter * my_perl=0x003923b4, sv *
arg=0x00a7592c, sv * sv=0x00000002) Line 252 + 0x3 C
B.dll!XS_B__GV_STASH(interpreter * my_perl=0x003923b4, cv *
cv=0x0088a78c) Line 4903 + 0x22 C
perl512.dll!Perl_pp_entersub(interpreter * my_perl=0x003923b4) Line
2882 + 0x10 C
perl512.dll!Perl_runops_debug(interpreter * my_perl=0x003923b4) Line
2049 + 0xd C
perl512.dll!Perl_call_sv(interpreter * my_perl=0x003923b4, sv *
sv=0x008e49ec, volatile long flags=14) Line 2605 + 0x36 C
perl512.dll!Perl_call_list(interpreter * my_perl=0x003923b4, long
oldscope=1, av * paramList=0x008e4b6c) Line 4600 + 0x52 C
perl512.dll!perl_parse(interpreter * my_perl=0x003923b4, void
(interpreter *)* xsinit=0x281d2190, int argc=4, char * * argv=0x00284d68, char
* * env=0x00285ed8) Line 1609 + 0x17 C
perl512.dll!RunPerl(int argc=4, char * * argv=0x00284d68, char * *
env=0x00285ed8) Line 263 + 0x1a C++
perl.exe!main(int argc=4, char * * argv=0x00284d68, char * *
env=0x00283390) Line 23 + 0x12 C
perl.exe!mainCRTStartup() Line 398 + 0xe C
kernel32.dll!_BaseProcessStart@4() + 0x23
the gv in XSUB XS_B__GV_STASH, is type 9, which means GV, yet sv_u, is a string
pointer to the string/PV "num". Also in the SV body, it has magic of type "B"
(#define PERL_MAGIC_bm 'B' /* Boyer-Moore (fast string search) */)
and vtable of PL_vtbl_bm. Which is very wrong for a GV. I have to figure out
where I am in PP and where it got this broken GV from.