[Sorry for TOFU]
I found and fixed the error. (Scintilla crash)

Remove the line with #define PERL_GET_NO_CONTEXT at the top of Scintilla.xs

The reason why you cannot reproduce it, it because MSVC obviously is
compiled with PERL_OBJECT (see GUI.h for the perlud struct),
Without PERL_OBJECT you may not change the setting of
PERL_GET_NO_CONTEXT to the one in GUI.xs. Otherwise you are accessing
the struct with and without the my_perl field, causing Scintilla to
crash.

It was not the stack corrupt, just perlud.

When I got a decent internet connection tomorrow I'll post my full patch
with added testcase which catches this problem.

2008/1/7, Jeremy White <[EMAIL PROTECTED]>:
>
> I can't seem to reproduce:
>
> perl-5.8.8.822 on Vista
> perl-5.8.7.813 on XP SP2
>
> Running but the demos.pl and Editor.pl with Win32-GUI-1.05. Do you need to do 
> anything special?
>
>
>
> > Date: Sun, 6 Jan 2008 21:21:59 -0600
> > From: [EMAIL PROTECTED]
> > To: [EMAIL PROTECTED]
> > Subject: [perl-win32-gui-hackers] Scintilla crashes at DoEvent_Scintilla
> >
> > cygwin, though I don't believe it is related.
> > perl-5.8.8 and perl-5.10.0
> > Win32-GUI-1.05
> >
> > scripts\win32-gui-demos.pl and Win32-GUI-Scintilla\demos\Editor.pl
> > crash. The first after starting an app, the 2nd immediately.
> > This came from the cygwin list, with Vista, but I and others can reproduce
> > it with XP2. Looks like an Scintilla.xs problem.
> >
> > Backtrace:
> >
> > $ gdb perl
> > GNU gdb 6.5.50.20060706-cvs (cygwin-special)
> > Copyright (C) 2006 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you are
> > welcome to change it and/or distribute copies of it under certain 
> > conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB. Type "show warranty" for details.
> > This GDB was configured as "i686-pc-cygwin"...
> > (gdb) run Editor.pl
> > Starting program: /usr/bin/perl.exe Editor.pl
> > Loaded symbols for /cygdrive/c/WINDOWS/system32/ntdll.dll
> > Loaded symbols for /cygdrive/c/WINDOWS/system32/kernel32.dll
> > Loaded symbols for /usr/bin/cygwin1.dll
> > Loaded symbols for /cygdrive/c/WINDOWS/system32/advapi32.dll
> > Loaded symbols for /cygdrive/c/WINDOWS/system32/rpcrt4.dll
> > Loaded symbols for /cygdrive/c/WINDOWS/system32/secur32.dll
> > Loaded symbols for /usr/bin/cygperl5_10.dll
> > Loaded symbols for /usr/bin/cygcrypt-0.dll
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x67503375 in Perl_gv_fetchpvn_flags (my_perl=0x17700e8,
> > nambeg=0xc5c17c "main::or_Notify", full_len=15, flags=0,
> > sv_type=13) at gv.c:909
> > 909 if (!stash || !SvREFCNT(stash)) /* symbol table
> > under destruction */
> > (gdb) bt
> > #0 0x67503375 in Perl_gv_fetchpvn_flags (my_perl=0x17700e8,
> > nambeg=0xc5c17c "main::or_Notify", full_len=15, flags=0,
> > sv_type=13) at gv.c:909
> > #1 0x6758dd2d in Perl_get_cvn_flags (my_perl=0x17700e8, name=0xc5c17c
> > "main::or_Notify", len=15, flags=0)
> > at perl.c:2479
> > #2 0x6758de63 in Perl_get_cv (my_perl=0x17700e8, name=0xc5c17c
> > "main::or_Notify", flags=0) at perl.c:2498
> > #3 0x6d541270 in DoEvent_Scintilla (my_perl=0x17700e8, Name=0xc5c17c
> > "main::or_Notify", code=2007, evt=0xc5c3bc)
> > at Scintilla.xs:67
> > #4 0x6d54286d in CallWndProc (nCode=0, wParam=0, lParam=12960480) at
> > Scintilla.xs:213
> > #5 0x7e4318e3 in UnhookWinEvent ()
> > #6 0x00000000 in ?? ()
> > (gdb) x stash
> > 0x1: Cannot access memory at address 0x1
> > (gdb)
> >
> > Reason: Someone is overwriting the stash with 1,
> > and the perlud name is also wrong.
> > It should be "Editor", not "or"
> > So I believe the stack is corrupt at all.
-- 
Reini Urban
http://phpwiki.org/              http://murbreak.at/
http://spacemovie.mur.at/   http://helsinki.at/

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Perl-Win32-GUI-Users mailing list
Perl-Win32-GUI-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
http://perl-win32-gui.sourceforge.net/

Reply via email to