Menu

#3038 TclLookupSimpleVar Interp->globalNsPtr

obsolete: 8.4.9
closed-invalid
7
2005-01-17
2005-01-16
Anonymous
No

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

Discussion

  • Brian

    Brian - 2005-01-16

    Logged In: YES
    user_id=1198298

    I was the poster... didn't sign in initially.

    This was posted in comp.lang.tcl, was advised to open bug
    report here.

    ---Brian

     
  • Don Porter

    Don Porter - 2005-01-16
    • labels: 105684 --> 07. Variables
    • priority: 5 --> 7
    • assigned_to: dgp --> msofer
     
  • Brian

    Brian - 2005-01-17

    Logged In: YES
    user_id=1198298

    This one looks like my fault... D'OH!

    Close this one out :)

    Thanks!

    ---Brian

     
  • miguel sofer

    miguel sofer - 2005-01-17

    Logged In: YES
    user_id=148712

    ok

     
  • miguel sofer

    miguel sofer - 2005-01-17
    • status: open --> closed-invalid