On Sunday 02 December 2007, Keith Isdale wrote: > Having bit more detail in steps to reproduce would be good as I might be > doing something slightly differently. Hi Keith I have tried a bit and quite easily reproduced it. With the test doc from the sources: kxsldbg src/kdewebdev-3.5.8/kxsldbg/data/testdoc.xsl src/kdewebdev-3.5.8/kxsldbg/data/testdoc.xml /tmp/foo and pressing "step" icon 2-10 times, then it blow up in a quite nice segfault. Trying to track this ended in the "item->next;" part of: (starting from 530 in kxsldbg/kxsldbgpart/libxsldbg/nodeview_cmds.cpp) xsltStackElemPtr item = styleCtxt->varsTab[styleCtxt->varsBase]; if (getThreadStatus() == XSLDBG_MSG_THREAD_RUN) { notifyListStart(XSLDBG_MSG_LOCALVAR_CHANGED); while (item) { notifyListQueue(item); item = item->next; } notifyListSend(); Just for the fun of it, I tried removing item->next and changed the while to a if. Then it segfaulted next time it needed a item->something I don't know when it last worked, but I tried comparing the code and it hasn't changed in any relevant ways for a long time. I have asked the debian libxslt maintainer (cc'ed) (the item is a struct defined in some libxslt header) and he says that libxslt hasn't changed in these ways. I have tested with libxslt 1.1.18 te 1.1.22 and I get the same segfault every time. backtrace from gdb following [Switching to Thread 0xb6209b90 (LWP 5670)] 0xb63c8a2a in xslDbgShellPrintVariable (styleCtxt=0x821cbd0, arg=0xb62087ae "", type=DEBUG_LOCAL_VAR) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/nodeview_cmds.cpp:537 537 item = item->next; (gdb) bt #0 0xb63c8a2a in xslDbgShellPrintVariable (styleCtxt=0x821cbd0, arg=0xb62087ae "", type=DEBUG_LOCAL_VAR) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/nodeview_cmds.cpp:537 #1 0xb63d1af0 in shellPrompt (source=0x819aaa8, doc=0x81fe598, filename=0xb63e38f9 "index.xsl", input=0xb63c0a00 <xslDbgShellReadline>, output=0xb79d74e0, styleCtxt=0x821cbd0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/debugXSL.cpp:1729 #2 0xb63d1c78 in debugXSLBreak (templ=0x819aaa8, node=0x81fe598, root=0x81fe1d0, ctxt=0x821cbd0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/debugXSL.cpp:1126 #3 0xb63d239a in debugHandleDebugger (cur=0x819aaa8, node=0x81fe598, templ=0x81fe1d0, ctxt=0x821cbd0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/debug.cpp:209 #4 0xb7c69699 in xslHandleDebugger (cur=0x819aaa8, node=0x81fe598, templ=0x81fe1d0, ctxt=0x821cbd0) at xsltutils.c:2234 #5 0xb7c80f23 in xsltDebuggerStartSequenceConstructor (ctxt=0x821cbd0, contextNode=0x81fe598, list=0x819aba0, templ=0x81fe1d0, addCallResult=0xb62090b8) at transform.c:2061 #6 0xb7c83198 in xsltApplyXSLTTemplate (ctxt=0x821cbd0, contextNode=0x81fe598, list=0x819aba0, templ=0x81fe1d0, withParams=0x0) at transform.c:2911 #7 0xb7c8384d in xsltProcessOneNode (ctxt=0x821cbd0, contextNode=0x81fe598, withParams=0x0) at transform.c:2032 #8 0xb7c87a42 in xsltApplyStylesheetInternal (style=0x8199da0, doc=0x81fe598, params=0xb62091cc, output=0x0, profile=0x0, userCtxt=0x0) at transform.c:6032 #9 0xb63be6c5 in xsltProcess (doc=0x81fe598, cur=0x8199da0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/xsldbg.cpp:404 #10 0xb63c01c1 in xsldbgMain (argc=0, argv=0x0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/xsldbg.cpp:787 #11 0xb63d7f84 in xsldbgThreadMain () at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libqtnotfier/xsldbgthread.cpp:311 #12 0xb68564fb in start_thread () from /lib/i686/cmov/libpthread.so.0 #13 0xb796493e in clone () from /lib/i686/cmov/libc.so.6 And the begginning of "bt full": (gdb) bt full #0 0xb63c8a2a in xslDbgShellPrintVariable (styleCtxt=0x821cbd0, arg=0xb62087ae "", type=DEBUG_LOCAL_VAR) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/nodeview_cmds.cpp:537 item = (xsltStackElemPtr) 0x39 result = <value optimized out> silenceCtxtErrors = <value optimized out> FULLNAME_STR = 0xb63e2b38 "-f" QUIET_STR = 0xb63de8fc "-q" #1 0xb63d1af0 in shellPrompt (source=0x819aaa8, doc=0x81fe598, filename=0xb63e38f9 "index.xsl", input=0xb63c0a00 <xslDbgShellReadline>, output=0xb79d74e0, styleCtxt=0x821cbd0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/debugXSL.cpp:1729 buff = "\230\215 ¶\"\vA·@\202\b\bø°!\b¨\215 ¶q\222\217· W\b\b¬E`·\b\216 ¶G\212\f·à\215 ¶ø°! \bðP4\bÐ\2132\bT\201\235·²\237B·<Þ\233·\034\000>¶\b\000\000\000ðP4\b\b\216 ¶q\222\217· W\b\b¨\024*\b(ü0\b" tempBaseName = <value optimized out> prompt = "/ > ", '\0' <repeats 495 times> cmdline = (xmlChar *) 0x8311218 "locals -q" cur = <value optimized out> loadedFiles = 0 commandId = 28 command = "locals", '\0' <repeats 146 times>, "!\234\217·", '\0' <repeats 17 times>, "tmp\023^\217·\000Ä>¶x\f \bz¬\233·\000\000\000\000p\201\235·\000Ä>¶\021\000\000\000\002", '\0' <repeats 11 times>, "_Æ\214·¼\220 ¶¹!>¶", '\0' <repeats 20 times>, "ÌÿÿÿÌÿÿÿÌÿÿÿà\212 ¶h¾! \bp\201\235·7Iµ·\030\035É·\b\035É·ôo\235·\000\000\000\000@\201\235·è\212 ¶=»\217·@\201\235·\005\000\000\000 «Å·\004\000\000\000ÀÍ\037\b\b\213 ¶ïW½·p¾! \b0\213 ¶!\234\217· «Å·0\213"... arg = "-q\000\000\217Þ\214·", '\0' <repeats 16 times>, "\f\215 ¶", '\0' <repeats 28 times>, "P\216 ¶", '\0' <repeats 36 times>, "ÿÿÿÿ \000\000\000¹!>¶·!>¶\000\000\000\000\f\215 ¶", '\0' <repeats 16 times>, "\004\000\000\000\000\000\000\000à\234\031\b", '\0' <repeats 40 times>, " ", '\0' <repeats 18 times>, "s", '\0' <repeats 120 times>, "ü\216 ¶", '\0' <repeats 20 times>, "¸!>¶\000\000\000\000ÿÿÿÿ\000\000\000\000\000\000\000\000ÈP4\b", '\0' <repeats 44 times>, "step", '\0' <repeats 75 times> dir = "¼\aý·à\205 ¶\020\207 ¶B9·\2222\000\000\000ÌO´·,H´·¬E`·è\205 ¶\020", '\0' <repeats 11 times>, "\005\000\000\000\"\005\000\000\000\000\000\0000\020É·8õ7¶lÀ ´·È\2356¶\001\000\000\000ô?ý·(n\022\b\004\207 ¶ \207 ¶j\017ü·È\2356¶\004\207 ¶ÄGý·\004\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\001\000\000\000X\206 ¶=»\217·@\201\235·\f\000\000\000&\026\000\000\f\000\000\000\020\207 ¶\210\206 ¶q\222\217·\f\000\000\000\f\232\205¶P\207 ¶pl\022\b8õ7¶¬E`·\210\201\235·ð\230\031\bL"... cmdResult = <value optimized out> shortCutId = <value optimized out> i = <value optimized out> baseUri = (xmlChar *) 0xb62085e0 "" breakUri = <value optimized out> lastSourceNode = (xmlNodePtr) 0x819aaa8 lastDocNode = (xmlNodePtr) 0x81fe598 exitShell = -1208218263 showSource = 1 #2 0xb63d1c78 in debugXSLBreak (templ=0x819aaa8, node=0x81fe598, root=0x81fe1d0, ctxt=0x821cbd0) at /build/buildd/kdewebdev-3.5.8/./kxsldbg/kxsldbgpart/libxsldbg/debugXSL.cpp:1126 nameTemp = (xmlChar *) 0x821af70 "\b" modeTemp = (xmlChar *) 0x81fc3c0 "index.xsl" tempDoc = (xmlDocPtr) 0x0 tempNode = (xmlNodePtr) 0x821af70 Thanks in advance /Sune -- How could I overclock the pin from Photoshop 98? You neither must doubleclick the utility, nor need to load a 23X floppy disk for booting a head.
Attachment:
signature.asc
Description: This is a digitally signed message part.