[gelöst] Absturz mit QList im VS 2008 Debug Mode
[gelöst] Absturz mit QList im VS 2008 Debug Mode
Kürzlich habe ich mein Programm, welches auch eine QList benutzt im Visual Studio 2008 im Debug Modus kompiliert und aus der IDE heraus gestartet. Dabei kam es genau an der Stelle, an der ich auf die QList zugreife zu einem Absturz. Als Release kompiliert, funktioniert alles tadellos.
Hat jemand schon einmal ein ähliches Problem gehabt und konnte es lösen?
Danke und Gruß,
Mario
Hat jemand schon einmal ein ähliches Problem gehabt und konnte es lösen?
Danke und Gruß,
Mario
Zuletzt geändert von stonecold am 27. September 2010 07:46, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hätte ja sein können, dass es ein bekanntes Problem gibt!
VS2008 mit Qt AddIn [4.6.3] -> standard QMainWidget Projekt. Ins Widget habe ich im Designer ein Menu mit dem Namen "menuMenu" eingefügt
VS2008 mit Qt AddIn [4.6.3] -> standard QMainWidget Projekt. Ins Widget habe ich im Designer ein Menu mit dem Namen "menuMenu" eingefügt
Code: Alles auswählen
#include "qlistbug.h"
#include <iostream>
QListBug::QListBug(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
ui.menuMenu->addAction("Eintrag 1");
ui.menuMenu->addAction("Eintrag 2");
ui.menuMenu->addAction("Eintrag 3");
ui.menuMenu->addAction("Eintrag 4");
QList<QAction *>::iterator menuIt = ui.menuMenu->actions().begin();
for(menuIt; menuIt != ui.menuMenu->actions().end(); ++menuIt)
{
std::cout << qPrintable((*menuIt)->text()) << "\n";
}
}
QListBug::~QListBug()
{
}-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Der Absturz passiert bei (*menuIt)->text(). Gleich beim ersten Aufruf.
Der Code ist im übrigen auch nur ein Beispiel. Der Fehler lässt sich also reproduzieren.
Aufrufliste:
QAction()::text() Z822
QAction()::d_func() Z67
qGetPtrHelper<QScopedPointer.... Z 2314 (in qglobal.h)
QScopePointe<QObjectData... (hier passiert der Fehler)
Unbehandelte Ausnahme bei 0x6506050a (QtGuid4.dll) in QListBug.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefef2.
Der Debugger zeigt mir Zeile 135 (return d; ) in qscopedpointer.h.
0xfeeefef2 {d=???}
Der Code ist im übrigen auch nur ein Beispiel. Der Fehler lässt sich also reproduzieren.
Aufrufliste:
QAction()::text() Z822
QAction()::d_func() Z67
qGetPtrHelper<QScopedPointer.... Z 2314 (in qglobal.h)
QScopePointe<QObjectData... (hier passiert der Fehler)
Unbehandelte Ausnahme bei 0x6506050a (QtGuid4.dll) in QListBug.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefef2.
Der Debugger zeigt mir Zeile 135 (return d; ) in qscopedpointer.h.
0xfeeefef2 {d=???}
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hallo Christian,
danke für deinen Hinweis.
Hab es irgendwie nicht gesehen!
So ist besser!
danke für deinen Hinweis.
Hab es irgendwie nicht gesehen!
Code: Alles auswählen
QList<QAction *> myList = ui.menuMenu->actions();
QList<QAction *>::iterator menuIt = myList.begin();
for(menuIt; menuIt != myList.end(); ++menuIt)
{
std::cout << qPrintable((*menuIt)->text()) << "\n";
}