From: Reini U. <ru...@x-...> - 2008-01-07 03:21:57
|
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/ |
From: Jeremy W. <jez...@ho...> - 2008-01-07 09:29:29
|
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: ru...@x-... > To: per...@li... > 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 reproduc= e > 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 conditi= ons. > 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=3D0x17700e8, > nambeg=3D0xc5c17c "main::or_Notify", full_len=3D15, flags=3D0, > sv_type=3D13) at gv.c:909 > 909 if (!stash || !SvREFCNT(stash)) /* symbol table > under destruction */ > (gdb) bt > #0 0x67503375 in Perl_gv_fetchpvn_flags (my_perl=3D0x17700e8, > nambeg=3D0xc5c17c "main::or_Notify", full_len=3D15, flags=3D0, > sv_type=3D13) at gv.c:909 > #1 0x6758dd2d in Perl_get_cvn_flags (my_perl=3D0x17700e8, name=3D0xc5c17c > "main::or_Notify", len=3D15, flags=3D0) > at perl.c:2479 > #2 0x6758de63 in Perl_get_cv (my_perl=3D0x17700e8, name=3D0xc5c17c > "main::or_Notify", flags=3D0) at perl.c:2498 > #3 0x6d541270 in DoEvent_Scintilla (my_perl=3D0x17700e8, Name=3D0xc5c17c > "main::or_Notify", code=3D2007, evt=3D0xc5c3bc) > at Scintilla.xs:67 > #4 0x6d54286d in CallWndProc (nCode=3D0, wParam=3D0, lParam=3D12960480) a= t > 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/ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Perl-Win32-GUI-Hackers mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-hackers > http://perl-win32-gui.sourceforge.net/ _________________________________________________________________ Who's friends with who and co-starred in what? http://www.searchgamesbox.com/celebrityseparation.shtml= |
From: Jeremy W. <jez...@ho...> - 2008-01-11 10:55:56
|
The doc's say it it should return a hash, but it actually returns an array.= Bug or doco shortfall? #######################################################################= #### # (@)METHOD:GetItem(NODE) # (@)METHOD:ItemInfo(NODE) # Returns an associative array of information about the given NODE: # -children # -image # -parent # -selectedimage # -state # -text void GetItem(handle,item) HWND handle HTREEITEM item ALIAS: Win32::GUI::TreeView::ItemInfo =3D 1 PREINIT: TV_ITEM tv_item; char pszText[1024]; PPCODE: ZeroMemory(&tv_item, sizeof(TV_ITEM)); tv_item.hItem =3D item; tv_item.mask =3D TVIF_CHILDREN | TVIF_HANDLE | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_TEXT | TVIF_STATE; tv_item.pszText =3D pszText; tv_item.cchTextMax =3D 1024; if(TreeView_GetItem(handle, &tv_item)) { EXTEND(SP, 12); XST_mPV(0, "-text"); XST_mPV(1, tv_item.pszText); XST_mPV(2, "-image"); XST_mIV(3, tv_item.iImage); XST_mPV(4, "-selectedimage"); XST_mIV(5, tv_item.iSelectedImage); XST_mPV(6, "-children"); XST_mIV(7, tv_item.cChildren); XST_mPV(8, "-parent"); XST_mIV(9, (long) TreeView_GetParent(handle, item)); XST_mPV(10, "-state"); XST_mIV(11, tv_item.state); XSRETURN(12); } else { XSRETURN_UNDEF; } _________________________________________________________________ Free games, great prizes - get gaming at Gamesbox.=20 http://www.searchgamesbox.com= |
From: Salvador O. G. <so...@ms...> - 2008-01-12 00:15:30
|
On Fri, 2008-01-11 at 10:55 +0000, Jeremy White wrote: > The doc's say it it should return a hash, but it actually returns an array. Bug or doco shortfall? > doco. IANAL but it actually returns a LIST, (an "associative" one) that can be assigned to a HASH or an ARRAY, so its a wording detail: %info = $w->ItemInfo($item); # "return" a hash Salvador. |
From: Robert M. <rob...@us...> - 2008-01-27 14:20:33
|
On 11/01/2008, Jeremy White <jez...@ho...> wrote: > The doc's say it it should return a hash, but it actually returns an array. Bug or doco shortfall? > > ########################################################################### > # (@)METHOD:GetItem(NODE) > # (@)METHOD:ItemInfo(NODE) > # Returns an associative array of information about the given NODE: > # -children > # -image > # -parent > # -selectedimage > # -state > # -text [snip] > XSRETURN(12); > } else { > XSRETURN_UNDEF; > } It does what is says. It returns an associative array (actually a list, I guess). I assume this is down so that you can write: my %info = $node->ItemInfo(); However, on failure the code above will warn about an uneven number of elements in the hash assignment, as the returned list will contain a single 'undef'. I'll fix that last XSRETURN_UNDEF to XSRETURN_EMPTY. Can you suggest a better wording for the docs? Rob. |
From: Reini U. <ru...@x-...> - 2008-01-13 00:18:42
|
[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 <jez...@ho...>: > > 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: ru...@x-... > > To: per...@li... > > 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/ |
From: Robert M. <rob...@us...> - 2008-01-27 15:47:39
|
On 13/01/2008, Reini Urban <ru...@x-...> wrote: > [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. I'll apply your fix. If you have the time to write a test case that would be much appreciated. Thanks, Rob. |
From: Reini U. <ru...@x-...> - 2008-01-27 19:08:50
|
2008/1/27, Robert May <rob...@us...>: > On 13/01/2008, Reini Urban <ru...@x-...> wrote: > > [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. > > I'll apply your fix. If you have the time to write a test case that > would be much appreciated. Attached are my tests. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ http://spacemovie.mur.at/ http://helsinki.at/ |
From: Robert M. <rob...@us...> - 2008-01-28 21:40:19
|
On 28/01/2008, Reini Urban <ru...@x-...> wrote: > > Attached are my tests. Many thanks. I'll tidy them up and apply them. Knowing what the problem was, with a bit of code inspection I was able to get the crash to happen reliably with this one-liner: perl -mWin32::GUI -mWin32::GUI::Scintilla -e 'Win32::GUI::Window->new->AddScintilla->SetFocus' I'll use that as the actual test for the crash, allowing me to simplify the other tests somewhat. Rob. |