Login  Register

Undo Segfault

Posted by Eric on Jul 03, 2011; 4:51pm
URL: https://forum.librecad.org/Undo-Segfault-tp4547570.html

Ries,

Another one for you.  This occurs at the tip of your SVN trunk as well as with the release candidate that I am running.  When I do an undo, the very next action moving forward invariably causes Librecad to segfault.  This happened to me several times last night, so I thought I would get you a backtrace on it.  Here is what I have:

#0  0x088d97c2 in ?? ()
#1  0x0809887c in RS_Document::startUndoCycle (this=0x8888e90)
    at src/lib/engine/rs_document.h:135
#2  0x081671f8 in RS_ActionDrawLine::trigger (this=0x887bcf0)
    at src/actions/rs_actiondrawline.cpp:89
#3  0x081677af in RS_ActionDrawLine::coordinateEvent (this=0x887bcf0,
    e=0xbfffe2b4) at src/actions/rs_actiondrawline.cpp:157
#4  0x0816752d in RS_ActionDrawLine::mouseReleaseEvent (this=0x887bcf0,
    e=0xbfffe8e4) at src/actions/rs_actiondrawline.cpp:125
#5  0x081143a0 in RS_EventHandler::mouseReleaseEvent (this=0x8878a28,
    e=0xbfffe8e4) at src/lib/gui/rs_eventhandler.cpp:123
#6  0x08118184 in RS_GraphicView::mouseReleaseEvent (this=0x872fd54,
    e=0xbfffe8e4) at src/lib/gui/rs_graphicview.cpp:338
#7  0x081de7b4 in QG_GraphicView::mouseReleaseEvent (this=0x872fd40,
    e=0xbfffe8e4) at src/ui/qg_graphicview.cpp:337
#8  0xb731813a in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#9  0xb72bfd24 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#10 0xb72c5201 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#11 0xb70550bb in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQtCore.so.4
#12 0xb72c0c3b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QW---Type <return> to continue, or q <return> to quit---
idget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/libQtGui.so.4
#13 0xb734a2bc in ?? () from /usr/lib/libQtGui.so.4
#14 0xb7348746 in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/libQtGui.so.4
#15 0xb7373b84 in ?? () from /usr/lib/libQtGui.so.4
#16 0xb697caa8 in g_main_context_dispatch ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#17 0xb697d270 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#18 0xb697d524 in g_main_context_iteration ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#19 0xb708253c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#20 0xb7373775 in ?? () from /usr/lib/libQtGui.so.4
#21 0xb7054289 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#22 0xb7054522 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQtCore.so.4
#23 0xb7058ecc in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#24 0xb72bd8e7 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#25 0x082ad156 in main (argc=1, argv=0xbffff384) at src/main/main.cpp:264

It looks to me like 'u' is corrupted the second time it gets to line 112 in src/lib/engine/rs_undo.cpp.