Hi,
I have a multi threaded C++ application which has multiple tcl =
interpreters.
The application dumps core sometimes ( stack trace is below ).
The only common thing i can see in the tcl functions that cause the core =
dump is the use
of empty strings i.e. set x ""
Is that a known problem ?
System details are as follows -
tcl - 8.4.1 (also checked with 8.4.5)
HP-UX hpp803b B.11.11 U 9000/800=20
Any help would be appreciated.
Thanks,
Anuj.
#3 0xc01e6a74 in abort+0x1c () from /usr/lib/libc.2
#4 0xd39fb5e8 in Tcl_PanicVA (format=3D0xd393c6d0 "alloc: invalid =
block: %p: %x %x %x\n",=20
argList=3D0x6799c4bc) at ../generic/tclPanic.c:106
#5 0xd39fb660 in Tcl_Panic (arg1=3D0xd393c6d0 "alloc: invalid block: =
%p: %x %x %x\n")
at ../generic/tclPanic.c:134
#6 0xd3a16734 in Ptr2Block (ptr=3D0x4272d778 "") at =
../generic/tclThreadAlloc.c:745
#7 0xd3a15a0c in TclpFree (ptr=3D0x4272d778 "") at =
../generic/tclThreadAlloc.c:387
#8 0xd3962bfc in Tcl_Free (ptr=3D0x4272d778 "") at =
../generic/tclCkalloc.c:1160
#9 0xd39ca30c in RecycleBuffer (statePtr=3D0x413b1ef8, =
bufPtr=3D0x4272d778, mustDiscard=3D0)
at ../generic/tclIO.c:1887
#10 0xd39ca814 in FlushChannel (interp=3D0x0, chanPtr=3D0x413ad8c8, =
calledFromAsyncFlush=3D0)
at ../generic/tclIO.c:2150
#11 0xd39cc584 in CheckFlush (chanPtr=3D0x413ad8c8, bufPtr=3D0x433a7dd8, =
newlineFlag=3D1)
at ../generic/tclIO.c:3407
#12 0xd39cc0f4 in WriteChars (chanPtr=3D0x413ad8c8, src=3D0xd3938e61 "", =
srcLen=3D0)
at ../generic/tclIO.c:3200
#13 0xd39cb920 in DoWriteChars (chanPtr=3D0x413ad8c8, src=3D0xd3938e60 =
"\n", len=3D1)
at ../generic/tclIO.c:2886
#14 0xd39cb7a4 in Tcl_WriteChars (chan=3D0x413ad8c8, src=3D0xd3938e60 =
"\n", len=3D1)
at ../generic/tclIO.c:2827
#15 0xd39d6a94 in Tcl_PutsObjCmd (dummy=3D0x0, interp=3D0x40e52678, =
objc=3D3, objv=3D0x40eddf98)
at ../generic/tclIOCmd.c:137
#16 0xd395a3e0 in TclEvalObjvInternal (interp=3D0x40e52678, objc=3D3, =
objv=3D0x40eddf98, command=3D0x0,=20
length=3D0, flags=3D0) at ../generic/tclBasic.c:3087
#17 0xd39a6848 in TclExecuteByteCode (interp=3D0x40e52678, =
codePtr=3D0x413c9bb8)
at ../generic/tclExecute.c:1404
#18 0xd39a52e4 in TclCompEvalObj (interp=3D0x40e52678, =
objPtr=3D0x40f0ce50)
at ../generic/tclExecute.c:982
#19 0xd3a0a87c in TclObjInterpProc (clientData=3D0x40ef89a8 "@\345&x", =
interp=3D0x40e52678, objc=3D3,=20
#20 0xd395a3e0 in TclEvalObjvInternal (interp=3D0x40e52678, objc=3D3, =
objv=3D0x40eddf8c, command=3D0x0,=20
length=3D0, flags=3D0) at ../generic/tclBasic.c:3087
#21 0xd39a6848 in TclExecuteByteCode (interp=3D0x40e52678, =
codePtr=3D0x415b68c8)
at ../generic/tclExecute.c:1404
#22 0xd39a52e4 in TclCompEvalObj (interp=3D0x40e52678, =
objPtr=3D0x40f0d288)
at ../generic/tclExecute.c:982
#23 0xd3a0a87c in TclObjInterpProc (clientData=3D0x40f43d38 "@\345&x", =
interp=3D0x40e52678, objc=3D3,=20
objv=3D0x4171b978) at ../generic/tclProc.c:1082
#24 0xd395a3e0 in TclEvalObjvInternal (interp=3D0x40e52678, objc=3D3, =
objv=3D0x4171b978,=20
command=3D0x68b0e560 "", length=3D0, flags=3D0) at =
../generic/tclBasic.c:3087
#25 0xd395a7d4 in Tcl_EvalObjv (interp=3D0x40e52678, objc=3D3, =
objv=3D0x4171b978, flags=3D0)
at ../generic/tclBasic.c:3203 |