--- In tdom@yahoogroups.com, rolf@... wrote:
>
>
> tDOM 0.8.2 is now available from
>
I am encountering a core dump with tDOM 0.8.2.
Platform: SPARC Solaris 9
Sun's C compiler
Tcl 8.5 cvs head as of Aug 15, 2007 snapshot by Activestate
tdom configured with options \"'--prefix=/projects/sprs_lwv/tcl85'
'--enable-shared' '--enable-symbols' '--enable-stubs' '--enable-64bit'
'--enable-threads' 'CC=cc'\"
The code builds, then I do a
make test
and I get
Tests began at Thu Aug 16 08:47:57 EDT 2007
attribute.test
cdata.test
comment.test
decls.test
doctype.test
dom.test
gmake: *** [test] Bus Error (core dumped)
srv29 $ dbx /vol/tclsrcsol/tcl85/tcl/unix/tclsh core
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.0' in
your .dbxrc
Reading tclsh
core file header read successfully
Reading ld.so.1
Reading libtcl8.5.so
Reading libdl.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libpthread.so.1
Reading libm.so.1
Reading libc.so.1
Reading libmp.so.2
Reading libc_psr.so.1
Reading libthread.so.1
Reading libtdom0.8.2.so
detected a multithreaded program
t@1 (l@1) terminated by signal BUS (invalid address alignment)
Current function is DispatchPCDATA
1481 node->nodeValue = (char*)MALLOC(len);
(dbx 1) where
current thread: t@1
=>[1] DispatchPCDATA(info = 0xffffffff7fff0cf8), line 1481 in "dom.c"
[2] endElement(userData = 0xffffffff7fff0cf8, name = 0x10001ced0
"root"), line 1369 in "dom.c"
[3] doContent(parser = 0x1001cc650, startTagLevel = 0, enc =
0xffffffff7d60d378, s = 0x100356c6c "</root>", end = 0x100356c73 "",
nextPtr = 0xffffffff7ffeeb18, haveMore = '\0'), line 2449 in "xmlparse.c"
[4] contentProcessor(parser = 0x1001cc650, start = 0x100356c50
"<root>\n some content\n </root>", end = 0x100356c73 "", endPtr
= 0xffffffff7ffeeb18), line 2023 in "xmlparse.c"
[5] doProlog(parser = 0x1001cc650, enc = 0xffffffff7d60d378, s =
0x100356c50 "<root>\n some content\n </root>", end = 0x100356c73
"", tok = 29, next = 0x100356c50 "<root>\n some content\n
</root>", nextPtr = 0xffffffff7ffeeb18, haveMore = '\0'), line 3905 in
"xmlparse.c"
[6] prologProcessor(parser = 0x1001cc650, s = 0x100356c50 "<root>\n
some content\n </root>", end = 0x100356c73 "", nextPtr =
0xffffffff7ffeeb18), line 3636 in "xmlparse.c"
[7] prologInitProcessor(parser = 0x1001cc650, s = 0x100356c50
"<root>\n some content\n </root>", end = 0x100356c73 "", nextPtr
= 0xffffffff7ffeeb18), line 3452 in "xmlparse.c"
[8] XML_Parse(parser = 0x1001cc650, s = 0x100356c50 "<root>\n
some content\n </root>", len = 35, isFinal = 1), line 1483 in
"xmlparse.c"
[9] domReadDocument(parser = 0x1001cc650, xml = 0x100356c50
"<root>\n some content\n </root>", length = 35,
ignoreWhiteSpaces = 1, encoding_8bit = (nil), storeLineColumn = 0,
feedbackAfter = 0, channel = (nil), baseurl = (nil), extResolver =
(nil), useForeignDTD = 0, paramEntityParsing = 2, interp =
0x1000449d0), line 2071 in "dom.c"
[10] tcldom_parse(clientData = (nil), interp = 0x1000449d0, objc =
2, objv = 0x1000492f8), line 5588 in "tcldom.c"
[11] tcldom_DomObjCmd(clientData = (nil), interp = 0x1000449d0, objc
= 2, objv = 0x1000492f0), line 5740 in "tcldom.c"
[12] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x1000492f0, command = 0x10038a0ce "dom parse {<root>\n some
content\n </root>}]\n set root [$doc documentElement]\n $root
text\n", length = 47, flags = 0), line 3549 in "tclBasic.c"
[13] TclEvalEx(interp = 0x1000449d0, script = 0x10038a0ce "dom parse
{<root>\n some content\n </root>}]\n set root [$doc
documentElement]\n $root text\n", numBytes = 47, flags = 0, line =
2), line 4189 in "tclBasic.c"
[14] TclSubstTokens(interp = 0x1000449d0, tokenPtr = 0x100048d40,
count = 1, tokensLeftPtr = (nil), line = 2), line 2223 in "tclParse.c"
[15] TclEvalEx(interp = 0x1000449d0, script = 0x10038a0c0 "\n set
doc [dom parse {<root>\n some content\n </root>}]\n set root
[$doc documentElement]\n $root text\n", numBytes = 114, flags =
262144, line = 2), line 4085 in "tclBasic.c"
[16] Tcl_EvalEx(interp = 0x1000449d0, script = 0x10038a0c0 "\n
set doc [dom parse {<root>\n some content\n </root>}]\n set
root [$doc documentElement]\n $root text\n", numBytes = 114, flags
= 262144), line 3891 in "tclBasic.c"
[17] TclEvalObjEx(interp = 0x1000449d0, objPtr = 0x100337840, flags
= 262144, invoker = (nil), word = 0), line 4563 in "tclBasic.c"
[18] Tcl_EvalObjEx(interp = 0x1000449d0, objPtr = 0x100337840, flags
= 262144), line 4445 in "tclBasic.c"
[19] Tcl_UplevelObjCmd(dummy = (nil), interp = 0x1000449d0, objc =
1, objv = 0x100048c58), line 910 in "tclProc.c"
[20] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x100048c48, command = 0xffffffffffffffff "", length = -1, flags = 0),
line 3549 in "tclBasic.c"
[21] TclExecuteByteCode(interp = 0x1000449d0, codePtr =
0x1002d0bc0), line 2038 in "tclExecute.c"
[22] TclObjInterpProcCore(interp = 0x1000449d0, procNameObj =
0x1003668a0, skip = 1, errorProc = 0xffffffff7f18bbc8 =
&`libtcl8.5.so`tclProc.c`MakeProcError(Tcl_Interp *interp, Tcl_Obj
*procNameObj)), line 1688 in "tclProc.c"
[23] TclObjInterpProc(clientData = 0x1000c3850, interp =
0x1000449d0, objc = 3, objv = 0x100357b00), line 1612 in "tclProc.c"
[24] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x100357b00, command = (nil), length = 0, flags = 262144), line 3549
in "tclBasic.c"
[25] Tcl_EvalObjv(interp = 0x1000449d0, objc = 3, objv =
0x100357b00, flags = 262144), line 3733 in "tclBasic.c"
[26] TclEvalObjEx(interp = 0x1000449d0, objPtr = 0x100368b20, flags
= 262144, invoker = (nil), word = 0), line 4533 in "tclBasic.c"
[27] Tcl_EvalObjEx(interp = 0x1000449d0, objPtr = 0x100368b20, flags
= 262144), line 4445 in "tclBasic.c"
[28] Tcl_UplevelObjCmd(dummy = (nil), interp = 0x1000449d0, objc =
1, objv = 0x100048ae8), line 910 in "tclProc.c"
[29] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x100048ad8, command = 0xffffffffffffffff "", length = -1, flags = 0),
line 3549 in "tclBasic.c"
[30] TclExecuteByteCode(interp = 0x1000449d0, codePtr =
0x10029a530), line 2038 in "tclExecute.c"
[31] TclObjInterpProcCore(interp = 0x1000449d0, procNameObj =
0x100367080, skip = 1, errorProc = 0xffffffff7f18bbc8 =
&`libtcl8.5.so`tclProc.c`MakeProcError(Tcl_Interp *interp, Tcl_Obj
*procNameObj)), line 1688 in "tclProc.c"
[32] TclObjInterpProc(clientData = 0x1000c1c30, interp =
0x1000449d0, objc = 3, objv = 0x100358a00), line 1612 in "tclProc.c"
[33] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x100358a00, command = (nil), length = 0, flags = 262144), line 3549
in "tclBasic.c"
[34] Tcl_EvalObjv(interp = 0x1000449d0, objc = 3, objv =
0x100358a00, flags = 262144), line 3733 in "tclBasic.c"
[35] TclEvalObjEx(interp = 0x1000449d0, objPtr = 0x100338980, flags
= 262144, invoker = (nil), word = 0), line 4533 in "tclBasic.c"
[36] Tcl_EvalObjEx(interp = 0x1000449d0, objPtr = 0x100338980, flags
= 262144), line 4445 in "tclBasic.c"
[37] Tcl_UplevelObjCmd(dummy = (nil), interp = 0x1000449d0, objc =
1, objv = 0x100048970), line 910 in "tclProc.c"
[38] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x100048960, command = 0xffffffffffffffff "", length = -1, flags = 0),
line 3549 in "tclBasic.c"
[39] TclExecuteByteCode(interp = 0x1000449d0, codePtr =
0x100359b40), line 2038 in "tclExecute.c"
[40] TclObjInterpProcCore(interp = 0x1000449d0, procNameObj =
0x100367230, skip = 1, errorProc = 0xffffffff7f18bbc8 =
&`libtcl8.5.so`tclProc.c`MakeProcError(Tcl_Interp *interp, Tcl_Obj
*procNameObj)), line 1688 in "tclProc.c"
[41] TclObjInterpProc(clientData = 0x10012fb90, interp =
0x1000449d0, objc = 5, objv = 0x1000482a8), line 1612 in "tclProc.c"
[42] InvokeImportedCmd(clientData = 0x100104c70, interp =
0x1000449d0, objc = 5, objv = 0x1000482a8), line 1878 in "tclNamesp.c"
[43] TclEvalObjvInternal(interp = 0x1000449d0, objc = 5, objv =
0x1000482a8, command = 0x1003a01c8 "test dom-2.1 {Don't quash white
space at start or end of non white space content} {\n set doc [dom
parse {<root>\n some content\n </root>}]\n set root [$doc
documentElement]\n $root text\n} {\n some content\n }\n\ntest
dom-2.2 {parse doc with various re-declaration of a prefix} {\n set
doc [dom parse {<p:a xmlns:p="uri1">\n <p:b xmlns:p="uri2">\n
<p:c xmlns:p="uri1"/>\n </p:b>\n</p:a>}]\n set root [$doc
documentElement]\n set result [$root asXML]\n $doc delete\n
set result\n} {<" ..., length = 224, flags = 0), line 3549 in "tclBasic.c"
[44] TclEvalEx(interp = 0x1000449d0, script = 0x10039f320 "#
Features covered: dom command\n#\n# This file contains a collection of
tests for the dom command of\n# tDOM.\n#\n# dom-1.*:
createDocument, createDocumentNS\n# dom-2.*: parse\n# dom-3.*:
isName, isNCName, isCharData, isPIName, isComment, isCDATA\n#
dom-4.*: parse -useForeignDTD\n# dom-5.*: external entities\n#
dom-6.*: use in slave interpreter\n# dom-7.*: setNameCheck,
setTextCheck\n# dom-8.*: createDocumentNode, documentNodes\n#
dom-9.*: setObjectCommands\n# dom-10.*: createNodeC" ..., numBytes
= 39034, flags = 0, line = 119), line 4189 in "tclBasic.c"
[45] Tcl_EvalEx(interp = 0x1000449d0, script = 0x10039f320 "#
Features covered: dom command\n#\n# This file contains a collection of
tests for the dom command of\n# tDOM.\n#\n# dom-1.*:
createDocument, createDocumentNS\n# dom-2.*: parse\n# dom-3.*:
isName, isNCName, isCharData, isPIName, isComment, isCDATA\n#
dom-4.*: parse -useForeignDTD\n# dom-5.*: external entities\n#
dom-6.*: use in slave interpreter\n# dom-7.*: setNameCheck,
setTextCheck\n# dom-8.*: createDocumentNode, documentNodes\n#
dom-9.*: setObjectCommands\n# dom-10.*: createNodeC" ..., numBytes
= 39034, flags = 0), line 3891 in "tclBasic.c"
[46] Tcl_FSEvalFileEx(interp = 0x1000449d0, pathPtr = 0x100333730,
encodingName = (nil)), line 1826 in "tclIOUtil.c"
[47] Tcl_SourceObjCmd(dummy = (nil), interp = 0x1000449d0, objc = 2,
objv = 0x100047ff8), line 953 in "tclCmdMZ.c"
[48] TclEvalObjvInternal(interp = 0x1000449d0, objc = 2, objv =
0x100047ff8, command = 0xffffffffffffffff "", length = -1, flags = 0),
line 3549 in "tclBasic.c"
[49] TclExecuteByteCode(interp = 0x1000449d0, codePtr =
0x1003285c0), line 2038 in "tclExecute.c"
[50] TclCompEvalObj(interp = 0x1000449d0, objPtr = 0x100332dd0,
invoker = 0x100047f48, word = 1), line 1242 in "tclExecute.c"
[51] TclEvalObjEx(interp = 0x1000449d0, objPtr = 0x100332dd0, flags
= 0, invoker = 0x100047f48, word = 1), line 4652 in "tclBasic.c"
[52] Tcl_CatchObjCmd(dummy = (nil), interp = 0x1000449d0, objc = 3,
objv = 0x100047f90), line 253 in "tclCmdAH.c"
[53] TclEvalObjvInternal(interp = 0x1000449d0, objc = 3, objv =
0x100047f90, command = 0xffffffffffffffff "", length = -1, flags = 0),
line 3549 in "tclBasic.c"
[54] TclExecuteByteCode(interp = 0x1000449d0, codePtr =
0x100328440), line 2038 in "tclExecute.c"
[55] TclCompEvalObj(interp = 0x1000449d0, objPtr = 0x10013c980,
invoker = 0x100047e90, word = 3), line 1242 in "tclExecute.c"
[56] TclEvalObjEx(interp = 0x1000449d0, objPtr = 0x10013c980, flags
= 0, invoker = 0x100047e90, word = 3), line 4652 in "tclBasic.c"
[57] Tcl_ForeachObjCmd(dummy = (nil), interp = 0x1000449d0, objc =
4, objv = 0x100047ed8), line 1811 in "tclCmdAH.c"
[58] TclEvalObjvInternal(interp = 0x1000449d0, objc = 4, objv =
0x100047ed8, command = 0xffffffffffffffff "", length = -1, flags = 0),
line 3549 in "tclBasic.c"
[59] TclExecuteByteCode(interp = 0x1000449d0, codePtr =
0x100180060), line 2038 in "tclExecute.c"
[60] TclCompEvalObj(interp = 0x1000449d0, objPtr = 0x10003d930,
invoker = 0x100047ce8, word = 4), line 1242 in "tclExecute.c"
[61] TclEvalObjEx(interp = 0x1000449d0, objPtr = 0x10003d930, flags
= 0, invoker = 0x100047ce8, word = 4), line 4652 in "tclBasic.c"
[62] Tcl_IfObjCmd(dummy = (nil), interp = 0x1000449d0, objc = 5,
objv = 0x100047d38), line 310 in "tclCmdIL.c"
[63] TclEvalObjvInternal(interp = 0x1000449d0, objc = 5, objv =
0x100047d38, command = 0x10006bf06 "if {$tcl_version < 8.2} {\n set
TESTS_DIR [file join [pwd] [file dirname [info script]]]\n set
currentDir [pwd]\n\n set globPattern [file join $TESTS_DIR
*.test]\n foreach file [lsort [glob $globPattern]] {\n set
tail [file tail $file]\n if {[string match l.*.test $tail]} {\n
# This is an SCCS lockfile; ignore it\n
continue\n }\n puts stdout $tail\n if {[catch
{source $file} msg]} {\n puts stdout $msg\n }\n
}\n} else {\n set ::tclte" ..., length = 1437, flags = 0), line
3549 in "tclBasic.c"
[64] TclEvalEx(interp = 0x1000449d0, script = 0x10006bad0 "# all.tcl
--\n#\n# This file contains a top-level script to run all of the
Tcl\n# tests. Execute it by invoking "tclsh all.test".\n#\n#
Copyright (c) 1998-1999 by Scriptics Corporation.\n# All rights
reserved.\n#\n# RCS: @(#) $Id: all.tcl,v 1.7 2003/11/24 10:03:42 rolf
Exp $\n# \n\nsource [file join [file dir [info script]]
loadtdom.tcl]\n\nif {$tcl_version >= 8.1} {\n if {[lsearch [info
proc ::tcltest::testConstraint] \\n
::tcltest::testConstraint] == -1} {\n set
::tcltest::testConfig(need_i18n) 1\n " ..., numBytes = 2670, flags =
0, line = 37), line 4189 in "tclBasic.c"
[65] Tcl_EvalEx(interp = 0x1000449d0, script = 0x10006bad0 "#
all.tcl --\n#\n# This file contains a top-level script to run all of
the Tcl\n# tests. Execute it by invoking "tclsh all.test".\n#\n#
Copyright (c) 1998-1999 by Scriptics Corporation.\n# All rights
reserved.\n#\n# RCS: @(#) $Id: all.tcl,v 1.7 2003/11/24 10:03:42 rolf
Exp $\n# \n\nsource [file join [file dir [info script]]
loadtdom.tcl]\n\nif {$tcl_version >= 8.1} {\n if {[lsearch [info
proc ::tcltest::testConstraint] \\n
::tcltest::testConstraint] == -1} {\n set
::tcltest::testConfig(need_i18n) 1\n " ..., numBytes = 2670, flags =
0), line 3891 in "tclBasic.c"
[66] Tcl_FSEvalFileEx(interp = 0x1000449d0, pathPtr = 0x10003d4b0,
encodingName = (nil)), line 1826 in "tclIOUtil.c"
[67] Tcl_Main(argc = -1, argv = 0xffffffff7fffd318, appInitProc =
0x100001e58 = &Tcl_AppInit(Tcl_Interp *interp)), line 441 in "tclMain.c"
[68] main(argc = 4, argv = 0xffffffff7fffd2f8), line 87 in
"tclAppInit.c"
(dbx 2)