From: SourceForge.net <no...@so...> - 2005-01-16 16:01:54
|
Bugs item #1103371, was opened at 2005-01-16 08:01 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=1103371&group_id=10894 Category: 48. Embedding Support Group: current: 8.4.9 Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Don Porter (dgp) Summary: TclLookupSimpleVar Interp->globalNsPtr Initial Comment: In tclvar.c::TclLookupSimpleVar(), I am getting a crash: Unhandled exception at 0x100a8526 (tcl84g.dll) in PBX.exe: 0xC0000005: Access violation reading location 0xfeeeffd6. It looks like the cxtNsPtr has a value of 0xfeeefeee that it gets from <globalNsPtr>. Why would this variable have this question? I am not using namespaces, at least I am not knowingly doing anything with them or messing with them. I am using 8.4.9, Windows XP SP-2, MS VisualC++.net (2003) if ((cxtNsPtr->varResProc != NULL || iPtr- >resolverPtr != NULL) && !(flags & LOOKUP_FOR_UPVAR)) cxtNsPtr = 0xfeeefeee, cxtNsPtr->varResProc = ???? Flags = 0x00000001 iPtr->resolverPtr is not null) Here is the stack: > tcl84g.dll!TclLookupSimpleVar(Tcl_Interp * interp=0x00e80b90, const char * > varName=0x00e80f00, int flags=0x00000001, const int create=0x00000001, > const char * * errMsgPtr=0x0012f3c8, int * indexPtr=0x0012f3c4) Line 710 + > 0x3 C tcl84g.dll!TclLookupVar(Tcl_Interp * interp=0x00e80b90, const char * part1=0x00e80f00, const char * part2=0x00000000, int flags=0x00000001, const char * msg=0x100e6874, int createPart1=0x00000001, int createPart2=0x00000001, Var * * arrayPtrPtr=0x0012f3fc) Line 270 + 0x1d C tcl84g.dll!Tcl_SetVar2Ex(Tcl_Interp * interp=0x00e80b90, const char * part1=0x00e80f00, const char * part2=0x00000000, Tcl_Obj * newValuePtr=0x00e96838, int flags=0x00000001) Line 1462 + 0x22 C tcl84g.dll!Tcl_SetVar2(Tcl_Interp * interp=0x00e80b90, const char * part1=0x00e80f00, const char * part2=0x00000000, const char * newValue=0x0012f57c, int flags=0x00000001) Line 1398 + 0x19 C tcl84g.dll!Tcl_SetVar(Tcl_Interp * interp=0x00e80b90, const char * varName=0x00e80f00, const char * newValue=0x0012f57c, int flags=0x00000001) Line 1342 + 0x17 C PBX.exe!tclBase::setVar (std::basic_string<char,std::char_traits<char>,std::alloc ator<char> > varName={...}, std::basic_string<char,std::char_traits<char>,std::alloca tor<char> > value={...}) Line 90 + 0x2c C++ The last call of mine was to Tcl_SetVar( theTcl, varName.c_str(), value.c_str(), TCL_GLOBAL_ONLY ); both varName and value are both populated so it is getting <const char *> with actual values (not null) and theTcl is a result of Tcl_CreateInterp() followed by Tcl_Init(). For reference, I am calling Tcl_FindExecutable(), Tcl_CreateInterp(), and Tcl_Init(), in that order. Any ideas? Thanks ---Brian ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=1103371&group_id=10894 |