Menu

#2 crash on init

open
nobody
None
5
2006-03-03
2006-03-03
Anonymous
No

On an iMac core duo, if I start up Alphatk, which attempts to load tclAE
immediately, it crashes here:

#0 0x9003db0c in kill
#1 0x9010f30f in raise
#2 0x9010de62 in abort
#3 0x0a06b386 in Tcl_PanicVA
#4 0x0a06b3a1 in Tcl_Panic
#5 0x0a08180b in TclpFree
#6 0x0a0690b7 in TclFreeObj
#7 0x0a08e571 in Tcl_SetVar2Ex
#8 0x9b31c485 in TclaeInitObjectAccessors
#9 0x9b31aa2f in Tclae_Init
#10 0x0a0601d4 in Tcl_LoadObjCmd
#11 0x0a010572 in TclEvalObjvInternal
#12 0x0a010b46 in Tcl_EvalEx

[I'd like to give more precise debugging information, but am having a very
hard time convincing xcode to build tcl and tk without throwing strange
errors]

Discussion

  • Vince Darley

    Vince Darley - 2006-03-09

    Logged In: YES
    user_id=32170

    The crash is caused when tclAE:: namespace doesn't exist and
    TclaeInitObjectAccessors tries to create a variable name.
    That fails and so:

    varPtr = TclLookupVar(interp, part1, part2, flags, "set",
    /*createPart1*/ 1, /*createPart2*/ 1, &arrayPtr);
    if (varPtr == NULL) {
    if (newValuePtr->refCount == 0) {
    Tcl_DecrRefCount(newValuePtr);
    }
    return NULL;
    }

    varPtr is NULL, and Tcl tries to decr-ref-count the value
    that was passed in. This value is a tclae-specific object
    type, and seems to have some problem being freed, since it
    then crashes.

    A workaround is to ensure that tclae:: exists before doing
    any of this.

    Vince.

     
  • Jonathan E. Guyer

    Logged In: YES
    user_id=121894

    How strange that it's only an issue on Intel, but thanks for the diagnosis. I'll
    work up a proper fix.

     
MongoDB Logo MongoDB