Dear Tk developers,
here is some more information on the segmentation fault. I fetched the
most recent Perl
(5.8.7) with the most recent Tk (804.027) and compiled all that with -g
on Solaris 8.
Please find below some traces from gdb (using gdb 6.3, gcc-3.4.4). It
seems that in
ptk/tkConfig.c the function call to GetOptionFromObj() returns sometimes
(I did not observe
any specific pattern) an optionPtr whose ->specPtr is an invalid pointer
(NULL or 0x3 in
the example below).
I am willing to provide more information upon request - can anyone have
an expert look
on this? In Tk::MainWindow I read that multiple MainWindows are OK in
Perl/Tk...
By the way, I applied the patch from
https://rt.cpan.org/NoAuth/Bug.html?id=13640
as otherwise "make test" would not work.
Thanks & best regards,
Marek
(gdb) run
[New LWP 1]
[New LWP 2]
[New LWP 3]
[New LWP 4]
[New LWP 5]
[Marek: after 3x opening/closing the second window the segafault
occurred]
Program received signal SIGSEGV, Segmentation fault.
Tk_GetOptionValue (interp=0x37afe8, recordPtr=0x3d2b28 "",
optionTable=0x3ca528, namePtr=0x263780, tkwin=0x3cd3c8) at
tkConfig.c:2280
/home/hwadm/.cpan/build/Tk-804.027/pTk/tkConfig.c:2280:65618:beg:0xfee37
210
(gdb) backtrace
#0 Tk_GetOptionValue (interp=0x37afe8, recordPtr=0x3d2b28 "",
optionTable=0x3ca528, namePtr=0x263780, tkwin=0x3cd3c8) at
tkConfig.c:2280
#1 0xfedea7f4 in FrameWidgetObjCmd (clientData=0x3d2b28,
interp=0x37afe8, objc=3, objv=0x3677cc) at tkFrame.c:772
#2 0xfedbb0a8 in Call_Tk (info=0x3d0340, items=3, args=0x3677cc) at
tkGlue.c:2283
#3 0xfedbc05c in XStoWidget (my_perl=0x23128, cv=0xeb7a8) at
tkGlue.c:2662
#4 0xff29e0e0 in Perl_pp_entersub (my_perl=0x23128) at pp_hot.c:2888
#5 0xff280edc in Perl_runops_debug (my_perl=0x23128) at dump.c:1452
#6 0xff229870 in S_call_body (my_perl=0x23128, myop=0xffbee370,
is_eval=0) at perl.c:2364
#7 0xff22d4ec in Perl_call_sv (my_perl=0x23128, sv=0x0, flags=4) at
perl.c:2282
#8 0xfeedc2cc in LangCallCallback (sv=0x37d75c, flags=4) at
pTkCallback.c:219
#9 0xfedc1504 in Tcl_EvalObjEx (interp=0x2bd890, objPtr=0x32f840,
flags=131072) at tkGlue.c:4362
#10 0xfedde334 in TkInvokeButton (butPtr=0x3bd650) at tkButton.c:1547
#11 0xfeddf4d0 in ButtonWidgetObjCmd (clientData=0x3bd650,
interp=0x2bd890, objc=2, objv=0xd8eac) at tkButton.c:890
#12 0xfedbb0a8 in Call_Tk (info=0x380a38, items=2, args=0xd8eac) at
tkGlue.c:2283
#13 0xfeda8994 in XS_Tk_WidgetMethod (my_perl=0x23128, cv=0x15ca60) at
Tk.xs:488
#14 0xff29e0e0 in Perl_pp_entersub (my_perl=0x23128) at pp_hot.c:2888
#15 0xff280edc in Perl_runops_debug (my_perl=0x23128) at dump.c:1452
#16 0xff229870 in S_call_body (my_perl=0x23128, myop=0xffbee8b8,
is_eval=0) at perl.c:2364
#17 0xff22d4ec in Perl_call_sv (my_perl=0x23128, sv=0x0, flags=70) at
perl.c:2282
#18 0xfeedc32c in LangCallCallback (sv=0x36574c, flags=6) at
pTkCallback.c:215
#19 0xfedc434c in LangEventCallback (cdata=0x0, interp=0x2bd890,
event=0x3bf650, tkwin=0x3bd1f8, keySym=1) at tkGlue.c:4701
#20 0xfeddcee0 in Tk_BindEvent (bindingTable=0x2bd890,
eventPtr=0x3bf650, tkwin=0x3bd1f8, numObjects=1406336,
objectPtr=0x380b50) at tkBind.c:1863
#21 0xfede0e58 in TkBindEventProc (winPtr=0x3bd1f8, eventPtr=0x3bf650)
at tkCmds.c:288
#22 0xfede484c in Tk_HandleEvent (eventPtr=0x3bf650) at tkEvent.c:1062
#23 0xfede537c in WindowEventProc (evPtr=0x3bf648, flags=3929680) at
tkEvent.c:1470
#24 0xfeedd838 in Tcl_ServiceEvent (flags=-3) at tclNotify.c:630
#25 0xfeeddacc in Tcl_DoOneEvent (flags=-3) at tclNotify.c:871
#26 0xfedaf4f0 in XS_Tk_DoOneEvent (my_perl=0x23128, cv=0x17f870) at
Tk.c:2517
#27 0xff29e0e0 in Perl_pp_entersub (my_perl=0x23128) at pp_hot.c:2888
#28 0xff280edc in Perl_runops_debug (my_perl=0x23128) at dump.c:1452
#29 0xff22e388 in perl_run (my_perl=0x23128) at perl.c:2000
#30 0x00011290 in ?? ()
#31 0x00011290 in ?? ()
(gdb) info args
interp = (Tcl_Interp *) 0x37afe8
recordPtr = 0x3d2b28 ""
optionTable = 0x3ca528
namePtr = (Tcl_Obj *) 0x263780
tkwin = 0x3cd3c8
(gdb) info locals
optionPtr = (Option *) 0x3c52e8
resultPtr = (Tcl_Obj *) 0x37afe8
(gdb) print optionPtr->specPtr
$6 = (const Tk_OptionSpec *) 0x3
-++**==--++**==--++**==--++**==--++**==--++**==--++**==
This message was posted through the Stanford campus mailing list
server. If you wish to unsubscribe from this mailing list, send the
message body of "unsubscribe ptk" to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.