SIGSEGV in mallopt() und 'uninitialised values' in nvidias libGL.so



  • Hi,
    benutze Qt und OpenGL und mein Programm stürzt nach einiger Zeit ab..
    Stack:

    (gdb) run
    
    .
    .
    .
    
    Program received signal SIGSEGV, Segmentation fault.
    0xb758c6d3 in mallopt () from /lib/libc.so.6
    (gdb) where
    #0  0xb758c6d3 in mallopt () from /lib/libc.so.6
    #1  0xb758b741 in malloc () from /lib/libc.so.6
    #2  0xb770386f in operator new(unsigned) () from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libstdc++.so.5
    #3  0xb77039df in operator new[](unsigned) () from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libstdc++.so.5
    #4  0xb7db741a in QString::setLength(unsigned) () from /usr/qt/3/lib/libqt-mt.so.3
    #5  0xb7db76e0 in QString::grow(unsigned) () from /usr/qt/3/lib/libqt-mt.so.3
    #6  0xb7dbe6d1 in QString::operator+=(QChar) () from /usr/qt/3/lib/libqt-mt.so.3
    #7  0xb7ab0355 in QFont::toString() const () from /usr/qt/3/lib/libqt-mt.so.3
    #8  0xb7aaff39 in QFont::key() const () from /usr/qt/3/lib/libqt-mt.so.3
    #9  0xb7d3a84e in QGLWidget::displayListBase(QFont const&, int) () from /usr/qt/3/lib/libqt-mt.so.3
    #10 0xb7d3abab in QGLWidget::renderText(int, int, QString const&, QFont const&, int) () from /usr/qt/3/lib/libqt-mt.so.3
    #11 0x08070f2e in MyGLWidget::drawScene() (this=0x81ed240) at qstring.h:1036
    #12 0x0807071c in MyGLWidget::paintGL() (this=0x81ed240) at src/MyGLWidget.cpp:31
    #13 0xb7d3a43c in QGLWidget::glDraw() () from /usr/qt/3/lib/libqt-mt.so.3
    #14 0xb7d39b24 in QGLWidget::updateGL() () from /usr/qt/3/lib/libqt-mt.so.3
    #15 0x08070be7 in MyGLWidget::addGraphical(MyGraphical*) (this=0xb7f4677c, newGraphical=0x82ad5d8) at src/MyGLWidget.cpp:96
    #16 0x0806c44a in GraphicalEditorForm::toolButtonCircleClicked() (this=0x81e5710) at graphicaleditorform.ui.h:45
    #17 0x0807267b in GraphicalEditorForm::qt_invoke(int, QUObject*) (this=0x81e5710, _id=53, _o=0x81ed240)
        at ui/moc_graphicaleditorform.cpp:102
    #18 0xb7af6286 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/qt/3/lib/libqt-mt.so.3
    #19 0xb7af6154 in QObject::activate_signal(int) () from /usr/qt/3/lib/libqt-mt.so.3
    #20 0xb7e2566e in QButton::clicked() () from /usr/qt/3/lib/libqt-mt.so.3
    #21 0xb7b845c7 in QButton::mouseReleaseEvent(QMouseEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #22 0xb7b2b1da in QWidget::event(QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #23 0xb7a9bd3c in QApplication::internalNotify(QObject*, QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #24 0xb7a9b20b in QApplication::notify(QObject*, QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #25 0xb7a330b2 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/qt/3/lib/libqt-mt.so.3
    #26 0xb7a30d2c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    ---Type <return> to continue, or q <return> to quit---
    #27 0xb7a47f97 in QEventLoop::processEvents(unsigned) () from /usr/qt/3/lib/libqt-mt.so.3
    #28 0xb7aad938 in QEventLoop::enterLoop() () from /usr/qt/3/lib/libqt-mt.so.3
    #29 0xb7aad7e8 in QEventLoop::exec() () from /usr/qt/3/lib/libqt-mt.so.3
    #30 0xb7a9bf71 in QApplication::exec() () from /usr/qt/3/lib/libqt-mt.so.3
    #31 0x0805f643 in GUI::run() () at src/GUI.cpp:28
    #32 0x080539f0 in main (argc=39, argv=0x27) at src/main.cpp:6
    (gdb)
    

    valgrind sagt ganz oft sowas:

    .
    .
    .
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B902592: strcat (mac_replace_strmem.c:144)
    ==9861==    by 0x1C83471E: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B90259D: strcat (mac_replace_strmem.c:144)
    ==9861==    by 0x1C83471E: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B902585: strcat (mac_replace_strmem.c:143)
    ==9861==    by 0x1C83474E: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B90258B: strcat (mac_replace_strmem.c:143)
    ==9861==    by 0x1C83474E: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B902585: strcat (mac_replace_strmem.c:143)
    ==9861==    by 0x1C834776: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B90258B: strcat (mac_replace_strmem.c:143)
    ==9861==    by 0x1C834776: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B902585: strcat (mac_replace_strmem.c:143)
    ==9861==    by 0x1C834792: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    ==9861==
    ==9861== Conditional jump or move depends on uninitialised value(s)
    ==9861==    at 0x1B90258B: strcat (mac_replace_strmem.c:143)
    ==9861==    by 0x1C834792: (within /usr/lib/opengl/nvidia/lib/libGLcore.so.1.0.6629)
    .
    .
    .
    

    ..und ähnliches..

    und am ende dies:

    .
    .
    .
    ==9861== Invalid read of size 4
    ==9861==    at 0x806A7C1: EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept(int) (stl_tree.h:195)
    ==9861==    by 0x8068FEB: EditorNeuroClassGraphicalItem::mouseMoveEvent(int) (EditorNeuroClassGraphicalItem.cpp:78)
    ==9861==    by 0x8070A96: MyGLWidget::mouseMoveEvent(QMouseEvent*) (stl_map.h:312)
    ==9861==    by 0x1BC4618D: QWidget::event(QEvent*) (in /usr/qt/3/lib/libqt-mt.so.3.3.4)
    ==9861==  Address 0x1DD16EA4 is not stack'd, malloc'd or (recently) free'd
    ==9861==
    ==9861== Invalid read of size 4
    ==9861==    at 0x806AEDA: std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>,std::allocator<std::pair<int const, int> > >::lower_bound(int const&) (stl_tree.h:1319)
    ==9861==    by 0x806A69A: EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept(int) (stl_map.h:508)
    ==9861==    by 0x8068FEB: EditorNeuroClassGraphicalItem::mouseMoveEvent(int) (EditorNeuroClassGraphicalItem.cpp:78)
    ==9861==    by 0x8070AC0: MyGLWidget::mouseMoveEvent(QMouseEvent*) (MyGLWidget.cpp:81)
    ==9861==  Address 0x1DD16EA4 is not stack'd, malloc'd or (recently) free'd
    ==9861==
    ==9861== Invalid read of size 4
    ==9861==    at 0x806A69B: EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept(int) (stl_tree.h:195)
    ==9861==    by 0x8068FEB: EditorNeuroClassGraphicalItem::mouseMoveEvent(int) (EditorNeuroClassGraphicalItem.cpp:78)
    ==9861==    by 0x8070AC0: MyGLWidget::mouseMoveEvent(QMouseEvent*) (MyGLWidget.cpp:81)
    ==9861==    by 0x1BC4618D: QWidget::event(QEvent*) (in /usr/qt/3/lib/libqt-mt.so.3.3.4)
    ==9861==  Address 0x1DD16EA4 is not stack'd, malloc'd or (recently) free'd
    ==9861==
    ==9861== Invalid read of size 4
    ==9861==    at 0x806AEDA: std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>,std::allocator<std::pair<int const, int> > >::lower_bound(int const&) (stl_tree.h:1319)
    ==9861==    by 0x806A71E: EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept(int) (stl_map.h:508)
    ==9861==    by 0x8068FEB: EditorNeuroClassGraphicalItem::mouseMoveEvent(int) (EditorNeuroClassGraphicalItem.cpp:78)
    ==9861==    by 0x8070AC0: MyGLWidget::mouseMoveEvent(QMouseEvent*) (MyGLWidget.cpp:81)
    ==9861==  Address 0x1DD16EA4 is not stack'd, malloc'd or (recently) free'd
    ==9861==
    ==9861== Invalid read of size 4
    ==9861==    at 0x806A71F: EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept(int) (stl_tree.h:195)
    ==9861==    by 0x8068FEB: EditorNeuroClassGraphicalItem::mouseMoveEvent(int) (EditorNeuroClassGraphicalItem.cpp:78)
    ==9861==    by 0x8070AC0: MyGLWidget::mouseMoveEvent(QMouseEvent*) (MyGLWidget.cpp:81)
    ==9861==    by 0x1BC4618D: QWidget::event(QEvent*) (in /usr/qt/3/lib/libqt-mt.so.3.3.4)
    ==9861==  Address 0x1DD16EA4 is not stack'd, malloc'd or (recently) free'd
    --9861-- INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting
    --9861-- si_code=1 Fault EIP: 0xB002DF1E; Faulting address: 0x1DD2504C
    
    valgrind: the `impossible' happened:
       Killed by fatal signal
    Basic block ctr is approximately 76750000
    ==9861==    at 0xB00327FA: ??? (vg_mylibc.c:1152)
    ==9861==    by 0xB00327F9: panic (vg_mylibc.c:1152)
    ==9861==    by 0xB0032820: vgPlain_core_panic (vg_mylibc.c:1157)
    ==9861==    by 0xB003A2D6: vg_sync_signalhandler (vg_signals.c:2191)
    
    sched status:
    
    Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0
    ==9861==    at 0x1B9032AC: operator new[](unsigned) (vg_replace_malloc.c:139)
    ==9861==    by 0x1BED2419: QString::setLength(unsigned) (in /usr/qt/3/lib/libqt-mt.so.3.3.4)
    ==9861==    by 0x1BED26DF: QString::grow(unsigned) (in /usr/qt/3/lib/libqt-mt.so.3.3.4)
    ==9861==    by 0x1BED96D0: QString::operator+=(QChar) (in /usr/qt/3/lib/libqt-mt.so.3.3.4)
    

    Weiß nicht wirklich weiter... 😞

    Der Absturz erfolgt immer, wenn ich in meiner OpenGL-Szene rumklicke. Aber mal früher, mal später.. Mal bei druck auf einen Button, mal beim bewegen der Maus..

    Was kann das sein?



  • Ich würde mal das Nvidia Zeugs ignorieren. Der Valgrind Fehler in deinem Code sollte zuerst gelöst werden. Wie sieht die Funktion
    MyGLWidget::mouseMoveEvent(QMouseEvent*) aus? valgrind hat manchmal Probleme Funktionsgrenzen zu erkennen, so dass stl_map.h:312 wohl nicht ganz korrekt ist. Hast du irgendwo noch ein -O oder -O2 drin?



  • Also..
    MyGLWidget ist abgeleitet von QGLWidget und beinhaltet Objekte die mit der Maus bearbeitet werden können: MyGraphical (Interface), was Superklasse von EditorNeuroClassGraphicalItem (abstrakt) und EditorNeuroClassGraphicalItem2DCircle ist.

    void MyGLWidget::mouseMoveEvent ( QMouseEvent * e ){
    	QGLWidget::mouseMoveEvent(e);
    	mouseX = e->x(); mouseY = e->y();
    	int name = objectUnderMouse(mouseX, mouseY);
    
    	if(mover)mover->mouseMoveEvent(name);
    
    	if(name == -1)
    		return;
    
    	GLNames[name]->mouseMoveEvent(name);
    }
    

    GLNames is ne std::map<int,MyGraphical*>, wobei MyGraphical eine Oberklasse von EditorNeuroClassGraphicalItem ist.

    void EditorNeuroClassGraphicalItem::mouseMoveEvent ( int id ){
    	switch(mode){
    		case Simulation:
    			mouseMoveEventSimulation(id);
    			break;
    		case Concept:
    			mouseMoveEventConcept(id);
    			break;
    	}
    }
    

    EditorNeuroClassGraphicalItem ist abstrakt. mouseMoveEventConcept wird erst in EditorNeuroClassGraphicalItem2DCircle definiert. Also:

    void EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept( int id ){
    	if(mouseDown){
    		Positions[GLNames2Pos[moveGLName]].x = GLWidget->getMouseXGL();
    		Positions[GLNames2Pos[moveGLName]].y = GLWidget->getMouseYGL();
    		GLWidget->needUpdating();
    		return;
    	}
    
    	if(GLNames2Pos[id]){
    		mouseOver = true;
    		mouseoverGLName = id;
    		GLWidget->wantMoveEvents(this);
    		GLWidget->needUpdating();
    		return;
    	}
    
    	mouseOver=false;
    	GLWidget->dontWantMoveEvents(this);
    	GLWidget->needUpdating();
    }
    

    Positions ist ein Array aus structs mit zwei int werten (x und y).
    GLNames2Pos ist eine std::map<int,int>, die zu einer OpenGL id (benötigt fürs picking) den entsprechende Index im Positions Array speichert. Wobei die benutzten Indexe erst bei 1 anfangen, damit die 2. if-Anweisung überprüft, ob diese id überhaupt in der Map ist..

    Der Absturz erfolgt nun, wenn ich ein paar von diesen EditorNeuroClassGraphicalItem2DCircle (ich weiß, langer Klassenname 😃 ) erzeugt und mit der Maus rumgeschoben habe..



  • Ich vermute mal, dein Objekt ist nicht gültig. Vielleicht eine slicing Sache.

    Iterier mal in
    void EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept( int id ) über die Map GLNames2Pos und gib dir die indizes aus. Ist das ein Member von
    EditorNeuroClassGraphicalItem2DCircle?



  • Ja ist Member..
    Die Indizes sind ok, also die erwarteten Werte.. innerhalb des Arrays..

    mh.. slicing gibts doch nur, wenn ein Objekt als lokale Variable erzeugt oder übergen wird, oder?
    Ich arbeite nur mit Zeigern auf Objekte..
    Hier werden die Objekte erzeugt:

    void GraphicalEditorForm::toolButtonCircleClicked()
    {
    	EditorNeuroClassGraphicalItem2DCircle *newCircle = new EditorNeuroClassGraphicalItem2DCircle();
    	newCircle->setModeConcept();
    	GUI::GraphicalEditorFormUtilities::addEditorNeuroClassGraphicalItem(neuroClass,newCircle);
    	myGLWidget->addGraphical(newCircle);
    }
    


  • Wenn GLNames2Pos ok ist, kann eigentlich nur Positions kaputt sein. Was ist das? und iterier mal darüber bevor es benutzt wird. Ich würde auch mal über beide objekte ständig iterieren bis es kaputt ist.



  • Glaub nicht, dass es an GLNames2Pos liegt.. Hatte vorher ein anderes Konzept, ohne diese Map. Aber mit dem gleichen Problem.

    Ausserdem fällt mir da ein, dass ich vor einiger Zeit SIGSEGVs in Qt Funktionen hatte. Hatte statt MyGraphical* MyGLWidget::mover eine std::list<MyGraphical*> Movers, durch die in MyGLWidget::mouseMoveEvent() durch iteriert wurde. Erst als ich die Liste durch den einzelnen Zeiger ersetzt hatte waren die SIGSEGVs weg..
    Auskommentieren von den Aufrufen von MyGLWidget::updateGL() hatte auch geholfen.

    Scheint so als wenn sich die Standardbibliothek nicht mit OpenGL verträgt...(?)
    Vielleicht linke ich falsch?
    Hier ein Auszug aus meiner Makefile:

    ####### Compiler, tools and options
    
    CC       = gcc
    CXX      = g++
    CFLAGS   = -pipe  -W   -g
    CXXFLAGS = -pipe  -W   -g
    INCPATH  = -I/usr/qt/3/mkspecs/linux-g++ -I. -I$(QTDIR)/include -Iui/ -I. -Imoc/
    LINK     = g++
    LFLAGS   =  -Wl,-rpath,$(QTDIR)/lib
    LIBS     = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lGLU -lqt -lXext -lX11 -lm -lGL
    MOC      = $(QTDIR)/bin/moc
    UIC      = $(QTDIR)/bin/uic
    
    OBJECTS_DIR = obj/
    SOURCES_DIR = cpp/
    HEADERS_DIR = cpp/
    FORMS_DIR   = ui/
    
    ####### Files
    
    HEADERS = src/myglwidget.h \
    		src/Controller.h \
    		src/GUI.h \
    		src/Net.h \
    		src/NeuroClass.h \
    		src/NeuroClassListViewItem.h \
    		src/MyException.h \
    		src/NeuroClassException.h \
    		src/NeuroClassNoSuchEventException.h
    SOURCES = src/main.cpp \
    		src/Controller.cpp \
    		src/GUI.cpp \
    		src/Net.cpp \
    		src/NeuroClass.cpp \
    		src/NeuroClassListViewItem.cpp \
    		src/MyException.cpp \
    		src/NeuroClassException.cpp \
    
    .
    .
    .
    
    		src/EditorNeuroClassGraphicalItem2D.cpp \
    		src/EditorNeuroClassGraphicalItem2DCircle.cpp \
    		src/EditorNeuroClassGraphicalItem3D.cpp \
    		src/GraphicalEditorForm.cpp \
    		src/DDListView.cpp \
    		src/GraphicalEditorGLWidget.cpp \
    		src/MyGLWidget.cpp \
    		src/EditorNeuroClassMovable.cpp
    OBJECTS = obj/main.o \
    		obj/NeuroClassesForm.o \
    		obj/MainForm.o \
    		obj/RuleForm.o \
    		obj/qmake_image_collection.o \
    		obj/Controller.o \
    		obj/GUI.o \
    		obj/Net.o \
    		obj/NeuroClass.o \
    		obj/NeuroClassListViewItem.o \
    		obj/MyException.o \
    .
    .
    .
    		obj/MyGLWidget.o \
    		obj/EditorNeuroClassMovable.o
    FORMS = ui/neuroclassesform.ui \
    		ui/mainform.ui \
    		ui/ruleform.ui \
    		ui/graphicaleditorform.ui
    UICDECLS = src/NeuroClassesForm.h \
    		src/MainForm.h \
    		src/RuleForm.h \
    		src/GraphicalEditorForm.h
    UICIMPLS = src/NeuroClassesForm.cpp \
    		src/MainForm.cpp \
    		src/RuleForm.cpp \
    		src/GraphicalEditorForm.cpp
    SRCMOC   = ui/moc_neuroclassesform.cpp \
    		ui/moc_mainform.cpp \
    		ui/moc_ruleform.cpp \
    		ui/moc_graphicaleditorform.cpp \
    		src/moc_ddlistview.cpp \
    		src/moc_graphicaleditorglwidget.cpp
    OBJMOC = obj/moc_neuroclassesform.o \
    		obj/moc_mainform.o \
    		obj/moc_ruleform.o \
    		obj/moc_graphicaleditorform.o \
    		obj/moc_ddlistview.o \
    		obj/moc_graphicaleditorglwidget.o \
    		obj/moc_myglwidget.o
    
    TARGET   = neuroEdit
    
    $(TARGET):  $(UICDECLS) $(OBJECTS) $(OBJMOC)  
    	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)
    
    ####### Compile
    
    obj/main.o: src/main.cpp src/MainForm.h src/Controller.h
    	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/main.o src/main.cpp
    
    obj/Controller.o: src/Controller.cpp src/Controller.h src/GUI.h src/Net.h src/NeuroClass.h
    	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/Controller.o src/Controller.cpp
    
    obj/GUI.o: src/GUI.cpp src/GUI.h src/MainForm.h src/NeuroClassesForm.h src/RuleForm.h src/NeuroClass.h src/Controller.h src/NeuroClassListViewItem.h
    	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/GUI.o src/GUI.cpp
    
    obj/Net.o: src/Net.cpp src/Net.h src/NeuroClass.h
    	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/Net.o src/Net.cpp
    .
    .
    .
    

    hab im wesentlichen nur die von qmake erzeugte Makefile modifiziert..
    Hatte übrigens vorher noch ein -O2 drin..



  • In dem alten Konzept gabs auch Positions noch nicht.. Hab trotzdem mal geschaut.. und die werte sehen auch gut aus.
    Ausserdem ist Positions ein Array, das einfach nur die 2D koordinaten von beweglichen Objekten enthält. Wird in der draw-Methode gelesen um die Objekte halt an der richtigen Stellen zu zeichnen. Solange die Arraygrenzen nicht überschritten werden, kann da eigentlich nicht viel passieren..



  • Kannst du eventuell mal den Code schicken? Wenn ja, dann komm in #cpp von irc.de.euirc.net



  • mh.. merkwürdig...
    hab mal ein paar Bibliotheken, die ich ja eigentlich garnicht brauch (waren noch von qmake drin) rausgenommen:
    Makefile:

    LIBS     = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib  -lqt -lGL -lGLU
    

    und jetzt ist die Speicherverletzung immer in std::_Rb_tree<int, std::pair<...

    gdb:

    Program received signal SIGSEGV, Segmentation fault.
    0x0806af6b in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::lower_bound(int const&) (this=0x82b2954, __k=@0xbfffe934) at stl_tree.h:1320
    1320          _Link_type __x = _M_root(); /* Current node. */
    (gdb) where
    #0  0x0806af6b in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::lower_bound(int const&) (this=0x82b2954, __k=@0xbfffe934) at stl_tree.h:1320
    #1  0x0806af12 in std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >::lower_bound(int const&) (this=0x82b2954, __x=@0xbfffe934)
        at stl_map.h:508
    #2  0x0806ae07 in std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >::operator[](int const&) (this=0x82b2954, __k=@0xbfffe934)
        at stl_map.h:316
    #3  0x0806a801 in EditorNeuroClassGraphicalItem2DCircle::mouseMoveEventConcept(int) (this=0x82b28d0, id=24) at src/EditorNeuroClassGraphicalItem2DCircle.cpp:65
    #4  0x0806912c in EditorNeuroClassGraphicalItem::mouseMoveEvent(int) (this=0xbfffe830, id=24) at src/EditorNeuroClassGraphicalItem.cpp:78
    #5  0x080712fc in MyGLWidget::mouseMoveEvent(QMouseEvent*) (this=0x81ef268, e=0xbfffed10) at src/MyGLWidget.cpp:71
    #6  0xb7bc218e in QWidget::event(QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #7  0xb7b32d3c in QApplication::internalNotify(QObject*, QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #8  0xb7b3220b in QApplication::notify(QObject*, QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #9  0xb7aca0b2 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/qt/3/lib/libqt-mt.so.3
    #10 0xb7ac7d2c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
    #11 0xb7adef97 in QEventLoop::processEvents(unsigned) () from /usr/qt/3/lib/libqt-mt.so.3
    #12 0xb7b44938 in QEventLoop::enterLoop() () from /usr/qt/3/lib/libqt-mt.so.3
    #13 0xb7b447e8 in QEventLoop::exec() () from /usr/qt/3/lib/libqt-mt.so.3
    #14 0xb7b32f71 in QApplication::exec() () from /usr/qt/3/lib/libqt-mt.so.3
    #15 0x0805f783 in GUI::run() () at src/GUI.cpp:28
    #16 0x08053b30 in main (argc=4, argv=0x4) at src/main.cpp:6
    

    Hab jetzt grad keine Zeit.. Werd heute nachmittag mal vorbeischauen..;)
    Aber trotzdem schonmal danke, Ponto 🙂



  • Falls es jemand anderen interessiert:
    Nachdem ich nun mit dem neuen Makefile mal alle .o Dateien gelöscht und somit alles neu kompiliert habe, geht alles 🙂
    Also, aus

    LIBS     = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib  -lqt -lXext -lX11 -lm -lGL -lGLU
    

    ist das

    LIBS     = -L$(QTDIR)/lib -lqt -lGL -lGLU
    

    geworden..

    Wobei in $SUBLIBS eh nichts stand..

    Wenn mir einer erklären kann, warum das für sowas verantworlich sein kann...

    Naja, Hauptsache es läuft.. 😃


Anmelden zum Antworten