Tcl Source Code

View Ticket
Login
Ticket UUID: 1938032
Title: Crash in [dict with]
Type: Bug Version: obsolete: 8.5.2
Submitter: beric Created on: 2008-04-08 18:34:31
Subsystem: 35. TclOO Package Assigned To: dkf
Priority: 9 Immediate Severity:
Status: Closed Last Modified: 2008-05-17 12:33:15
Resolution: Out of Date Closed By: dkf
    Closed on: 2008-05-17 05:33:15
Description:
Not sure if this is related to TclOO or [dict with], but the attached script dicttest.tcl crashes.
The equivalent script dicttest2.tcl in pure Tcl does not.
User Comments: dkf added on 2008-05-17 12:33:15:
Logged In: YES 
user_id=79902
Originator: NO

Further examination (well, slightly annotating dicttest.tcl to print out which version of the TclOO it has required) indicates that the crash only happens with TclOO 0.2, and not with 0.3a0 (the CVS HEAD). Confirmed that this is true using ActiveState builds of tclsh and TclOO (i.e. completely independent of my own compiler configuration).

While there have been many fixes between 0.2 and now, the revisions to call chain and cache management are almost certainly what made the problem in this report go away.

dkf added on 2008-05-16 22:39:42:
Logged In: YES 
user_id=79902
Originator: NO

(Or maybe it needs a build of TclOO that is matched completely against a particular patchlevel of Tcl; can't tell without much more work)

dkf added on 2008-05-16 22:37:10:
Logged In: YES 
user_id=79902
Originator: NO

Needs 8.5 series build; can't duplicate with Tcl 8.6a0 even on a platform which is sensitive. Grrr!

dkf added on 2008-05-16 21:30:48:
Logged In: YES 
user_id=79902
Originator: NO

Bleah; can duplicate now...

sf-robot added on 2008-05-16 09:20:22:
Logged In: YES 
user_id=1312539
Originator: NO

This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).

dkf added on 2008-05-01 20:27:52:
Logged In: YES 
user_id=79902
Originator: NO

Can't reproduce on OSX with the HEAD of Tcl and TclOO.

v_f added on 2008-04-13 00:17:03:
Logged In: YES 
user_id=1923679
Originator: NO

Same for me on x86_64 with and without symbols. The first error happens here:

==20269== Conditional jump or move depends on uninitialised value(s)
==20269==    at 0x4F37B76: TclLookupSimpleVar (tclVar.c:1007)
==20269==    by 0x4F374A9: TclObjLookupVarEx (tclVar.c:705)
==20269==    by 0x4F3865D: Tcl_ObjSetVar2 (tclVar.c:1710)
==20269==    by 0x4EB9523: DictWithCmd (tclDictObj.c:3061)
==20269==    by 0x4E609D0: TclEvalObjvInternal (tclBasic.c:3649)
==20269==    by 0x4E61079: Tcl_EvalObjv (tclBasic.c:3844)
==20269==    by 0x4F05D44: NsEnsembleImplementationCmd (tclNamesp.c:6217)
==20269==    by 0x4E609D0: TclEvalObjvInternal (tclBasic.c:3649)
==20269==    by 0x4EC342E: TclExecuteByteCode (tclExecute.c:2314)
==20269==    by 0x4F1C30E: TclObjInterpProcCore (tclProc.c:1721)
==20269==    by 0x69AA970: InvokeProcedureMethod (tclOOMethod.c:724)
==20269==    by 0x69A295C: TclOOInvokeContext (tclOOCall.c:221)

Loaded symbols for /usr/local/tcl/8.5.2-dbg/lib/TclOO0.2/libTclOO0.2.so
0x0000000004f37b76 in TclLookupSimpleVar (interp=0x5964d30, varNamePtr=0x66d3aa8, flags=512, create=1, errMsgPtr=0x7feffc740, 
    indexPtr=0x7feffc74c) at /usr/local/tcl/8.5.2-dbg/src/tcl/unix/../generic/tclVar.c:1007
1007                if (objPtr) {
(gdb) p objPtr
$1 = (Tcl_Obj *) 0x0

beric added on 2008-04-09 01:36:19:

File Added - 273752: dicttest2.tcl

Logged In: YES 
user_id=493507
Originator: YES

File Added: dicttest2.tcl

beric added on 2008-04-09 01:34:31:

File Added - 273751: dicttest.tcl

Attachments: