[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kant
Subject:    Re: crash info
From:       Ellis Whitehead <ellis () innocent ! com>
Date:       2002-01-22 3:09:37
[Download RAW message or body]

I've done some debugging, and the crash is taking place in 
Highlight::doHighlight():

    ctx=generateContextStack(&ctxNum, context->ctx, ctx, &oCtxLen, 
&prevLine,lineContinue);	//get stack ID to use

The context variable holds a bad pointers, because:

    ctxNum=ctx[oCtxLen-1]; 
    if (contextList[ctxNum])
      context=contextList[ctxNum]; //context structure

ctxNum has a bad value (56, where there are only 32 elements).  See the 
attached debug output file for more details.  The first line of output for 
each line of the edited file is from a kdDebug() statement in 
KateDocument::updateLines(), just before the call to 
    m_highlight->doHighlight(ctxNum, ctxNumLen, textLine,line_continue);


---
Also, in KateDocument::updateLines() there is something a little peculiar with 
signed char* ctxNum.  It is initialized to 0L.  Subsequently, there are a 
couple places where there is a query to see if it's null or not, but it 
hasn't been assigned anything yet.

    if (ctxNumLen>0)
    {
*      if (ctxNum)
        ctxNum=(signed char*)realloc(ctxNum,ctxNumLen);
      else
        ctxNum=(signed char*)malloc(ctxNumLen);
      memcpy(ctxNum,getTextLine(line-1)->getContext(),ctxNumLen);
    }
*    else { if (ctxNum) {free(ctxNum); ctxNum=0;}}

Regards,
Ellis
["debug-kate.txt" (text/plain)]

kate: line = 0 ctxNum = (nil) ctxNumLen = 0 textLine = "#include "modifiers.h""
kate: line = 1 ctxNum = 0x81b9a50 ctxNumLen = 1 textLine = ""
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 2 ctxNum = 0x81b9a50 ctxNumLen = 2 textLine = "#include \
                <qbuttongroup.h>"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 3 ctxNum = 0x81b9a50 ctxNumLen = 3 textLine = "#include <qcheckbox.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 4 ctxNum = 0x81b9a50 ctxNumLen = 5 textLine = "#include <qfont.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 5 ctxNum = 0x81b9a50 ctxNumLen = 7 textLine = "#include <qgroupbox.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 6 ctxNum = 0x81b9a50 ctxNumLen = 9 textLine = "#include <qlabel.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 7 ctxNum = 0x81b9a50 ctxNumLen = 11 textLine = "#include <qlayout.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 8 ctxNum = 0x80e8fc0 ctxNumLen = 13 textLine = "#include <qwhatsthis.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 9 ctxNum = 0x80e8fc0 ctxNumLen = 15 textLine = ""
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 10 ctxNum = 0x80e8fc0 ctxNumLen = 16 textLine = "#include \
                <kapplication.h>"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 11 ctxNum = 0x80e8fc0 ctxNumLen = 17 textLine = "#include <kcombobox.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 12 ctxNum = 0x80e8fc0 ctxNumLen = 19 textLine = "#include <kconfig.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 13 ctxNum = 0x80e8fc0 ctxNumLen = 21 textLine = "#include <kdebug.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 14 ctxNum = 0x80e8fc0 ctxNumLen = 23 textLine = "#include <kdialog.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 15 ctxNum = 0x80e8fc0 ctxNumLen = 25 textLine = "#include <kglobal.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 16 ctxNum = 0x80e8fc0 ctxNumLen = 27 textLine = "#include \
                <kkeynative.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 17 ctxNum = 0x80e8ce8 ctxNumLen = 29 textLine = "#include <klistview.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 18 ctxNum = 0x80e8ce8 ctxNumLen = 31 textLine = "#include <klocale.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 19 ctxNum = 0x80e8ce8 ctxNumLen = 33 textLine = ""
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 20 ctxNum = 0x80e8ce8 ctxNumLen = 34 textLine = "#define XK_MISCELLANY"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 21 ctxNum = 0x80e8ce8 ctxNumLen = 35 textLine = "#define XK_XKB_KEYS"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 22 ctxNum = 0x80e8d38 ctxNumLen = 37 textLine = "#include <X11/X.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 23 ctxNum = 0x80e8d38 ctxNumLen = 39 textLine = "#include <X11/Xlib.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 24 ctxNum = 0x80e8d38 ctxNumLen = 41 textLine = "#include <X11/Xutil.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 25 ctxNum = 0x80e8d38 ctxNumLen = 43 textLine = "#include \
                <X11/keysymdef.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 26 ctxNum = 0x80e8d38 ctxNumLen = 45 textLine = "#include <ctype.h>"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 27 ctxNum = 0x80e8d38 ctxNumLen = 47 textLine = "#undef NONE"
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 28 ctxNum = 0x80e8d38 ctxNumLen = 49 textLine = ""
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 29 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "/*Modifier Scheme"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 30 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	PC: \
                Shift/Ctrl/Alt/Win"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 31 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Mac: \
                Shift/Command/Apple/Alt"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 32 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Custom"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 33 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = ""
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 34 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "X11"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 35 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "Modifier	XMod		Label"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 36 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "Shift		Shift		[Shift]"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 37 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "Ctrl		Control		[Ctrl] \
                Ctrl|Apple"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 38 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "Alt		[Mod1]		[Alt] \
                Alt|Command"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 39 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "Win		[Mod4]		[Win] \
                Win|Alt|Meta|Super|Hyper"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 40 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "Extra1		[]		[] User \
                definable"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 41 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = ""
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 42 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Shift"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 43 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Lock	Caps_Lock"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 44 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Control	Control_L, \
                Control_R"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 45 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Mod1	Alt_L, Alt_R"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 46 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Mod2	Num_Lock"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 47 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Mod3	Mode_switch"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 48 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Mod4	Super_L, Super_R"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 49 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	Mod5	Scroll_Lock"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 50 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "*/"
kate: 		ctxNum = 3 contextList[ctxNum] = 0x82496f8
kate: line = 51 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 52 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "//For Mac keyboards:"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 53 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "//1) labels: Shift | \
                Ctrl | Option | Command"
kate: 		ctxNum = 2 contextList[ctxNum] = 0x81ce6b0
kate: line = 54 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "//2) swap Ctrl & \
                Command"
kate: 		ctxNum = 2 contextList[ctxNum] = 0x81ce6b0
kate: line = 55 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = ""
kate: 		ctxNum = 2 contextList[ctxNum] = 0x81ce6b0
kate: line = 56 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "ModifiersModule::ModifiersModule( QWidget *parent, const char *name \
                )"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 57 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ":	QWidget( parent, name \
                )"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 58 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "{"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 59 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	m_sLabelCtrlOrig = \
                KGlobal::config()->readEntry( "Label Ctrl", "Ctrl" );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 60 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	m_sLabelAltOrig = \
                KGlobal::config()->readEntry( "Label Alt", "Alt" );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 61 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	m_sLabelWinOrig = \
                KGlobal::config()->readEntry( "Label Win", "Win" );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 62 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 63 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	m_bMacKeyboardOrig = \
                (m_sLabelWinOrig != "Win");"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 64 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	m_bMacSwapOrig = \
m_bMacKeyboardOrig && KGlobal::config()->readBoolEntry( "Mac Modifier Swap", false \
                );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 65 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 66 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	initGUI();"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 67 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "}"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 68 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 69 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "// When [Apply] or [OK] \
                are clicked."
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 70 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "void \
                ModifiersModule::save()"
kate: 		ctxNum = 2 contextList[ctxNum] = 0x81ce6b0
kate: line = 71 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "{"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 72 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	kdDebug(125) << \
                "ModifiersModule::save()" << endl;"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 73 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 74 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	KConfigGroupSaver cgs( \
                KGlobal::config(), "Keyboard" );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 75 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 76 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "	KGlobal::config()->writeEntry( "Label Ctrl", m_plblCtrl->text(), \
                true, true );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 77 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "	KGlobal::config()->writeEntry( "Label Alt", m_plblAlt->text(), \
                true, true );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 78 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "	KGlobal::config()->writeEntry( "Label Win", m_plblWin->text(), \
                true, true );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 79 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 80 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	bool bMacSwap = \
                m_pchkMacKeyboard->isChecked() && m_pchkMacSwap->isChecked();"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 81 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "	KGlobal::config()->writeEntry( "Mac Modifier Swap", bMacSwap, true, \
                true );"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 82 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	if( m_bMacSwapOrig != \
                bMacSwap ) {"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 83 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "		if( bMacSwap )"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 84 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "			setupMacModifierKeys();"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 85 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "		else"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 86 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = \
                "			kapp->kdeinitExec("kxkb");"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 87 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "		updateWidgets();"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 88 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "	}"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 89 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "}"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 90 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 91 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "void \
                ModifiersModule::defaults()"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 92 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "{"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 93 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "}"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 94 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = ""
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: line = 95 ctxNum = 0x80e8d38 ctxNumLen = 50 textLine = "#define SET_CODE_SYM( \
                iCode, sym ) \"
kate: 		ctxNum = 0 contextList[ctxNum] = 0x81fba00
kate: Setting line continue flag
kate: line = 96 ctxNum = 0x80e8d38 ctxNumLen = 51 textLine = "	if( iCode >= \
                keyCodeMin && iCode <= keyCodeMax ) \"
kate: Entering with lineContinue flag set
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: Setting line continue flag
kate: line = 97 ctxNum = 0x80e8d38 ctxNumLen = 52 textLine = \
                "		rgKeySyms[(iCode-keyCodeMin) * nSymsPerCode] = sym;"
kate: Entering with lineContinue flag set
kate: 		ctxNum = 4 contextList[ctxNum] = 0x808ab10
kate: line = 98 ctxNum = 0x80e8d38 ctxNumLen = 53 textLine = "#define SET_MOD_CODE( \
                iMod, code1, code2 ) \"
kate: 		ctxNum = 56 contextList[ctxNum] = 0x28
KCrash: crashing.... crashRecursionCounter = 2
KCrash: Application Name = kate path = <unknown> pid = 31857


_______________________________________________
kde-kant mailing list
kde-kant@
http://mail.kde.org/mailman/listinfo/kde-kant

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic