Clone
Stefan Sobernig <stefan.sobernig@wu.ac.at>
committed
on 22 Mar 19
Added docs about upvar method
generic/nsfStack.c (+2 -2)
120 120   /* framePtr = (Tcl_CallFrame *)Tcl_Interp_varFramePtr(interp);
121 121     for (; framePtr != NULL; framePtr = Tcl_CallFrame_callerPtr(framePtr)) {
122 122     fprintf(stderr, "... frame %p flags %.6x cd %p objv[0] %s\n",
123 123             framePtr, Tcl_CallFrame_isProcCallFrame(framePtr),
124 124             Tcl_CallFrame_clientData(framePtr),
125 125             Tcl_CallFrame_objc(framePtr) ? ObjStr(Tcl_CallFrame_objv(framePtr)[0]) : "(null)");
126 126             }*/
127 127   framePtr = (Tcl_CallFrame *)Tcl_Interp_framePtr(interp);
128 128   fprintf(stderr, "...         varFrame  flags       clientData lvl               ns\n");
129 129   for (; framePtr != NULL; framePtr = Tcl_CallFrame_callerPtr(framePtr)) {
130 130     unsigned int frameFlags = (unsigned int)Tcl_CallFrame_isProcCallFrame(framePtr);
131 131     NsfCallStackContent *cscPtr =
132 132       (frameFlags & (FRAME_IS_NSF_METHOD|FRAME_IS_NSF_CMETHOD)) ?
133 133       ((NsfCallStackContent *)Tcl_CallFrame_clientData(framePtr)) : NULL;
134 134
135 135     fprintf(stderr, "... %16p %.6x %16p %3d %16p %s ov %s %d",
136 136             (void *)framePtr, frameFlags,
137 137             Tcl_CallFrame_clientData(framePtr),
138 138             Tcl_CallFrame_level(framePtr),
139 139             (void *)Tcl_CallFrame_nsPtr(framePtr), Tcl_CallFrame_nsPtr(framePtr)->fullName,
140               Tcl_CallFrame_objc(framePtr) && 0 ? ObjStr(Tcl_CallFrame_objv(framePtr)[0]) : "(null)",
141               Tcl_CallFrame_objc(framePtr) ? Tcl_CallFrame_objc(framePtr) : -1);
  140             Tcl_CallFrame_objc(framePtr) > 0 ? ObjStr(Tcl_CallFrame_objv(framePtr)[0]) : "(null)",
  141             Tcl_CallFrame_objc(framePtr) > 0 ? Tcl_CallFrame_objc(framePtr) : -1);
142 142     if (cscPtr != NULL) {
143 143       fprintf(stderr, " csc %p frameType %.4x flags %.6x (%s.%p %s)\n",
144 144               (void *)cscPtr,
145 145               cscPtr->frameType,
146 146               cscPtr->flags,
147 147               ObjectName(cscPtr->self),
148 148               (void *)cscPtr->cmdPtr,
149 149               Tcl_GetCommandName(interp, cscPtr->cmdPtr));
150 150     } else {
151 151       fprintf(stderr, " no csc");
152 152       if (frameFlags & FRAME_IS_NSF_OBJECT) {
153 153         NsfObject *object = (NsfObject *)Tcl_CallFrame_clientData(framePtr);
154 154         fprintf(stderr, " obj %p %s", (void *)object, ObjectName(object));
155 155       }
156 156       fprintf(stderr, "\n");
157 157     }
158 158   }
159 159 }
160 160
161 161 /*