[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 0x 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/