> Double deletion of a QAction(-derived) object.
> How are your QActions created (Stack/Heap)? Do you use any other life-time 
> management (Smart pointers?) besides assigning a QObject parent?

I did a search of QAction in the current project and all of my QAction objects 
are declared like so:
   QAction* myAction = new QAction("blag", this);
I'm not using any smart pointers, and I don't have any QAction objects on the 
stack.

I did get rid of the segfault by removing:
  serPort->deleteLater();
from my MainWindow destructor.  "serPort" is a QSerialPort object that I 
created in the MainWindow constructor with no parent, then created a QThread 
object (which also apparently had no parent? This seems wrong?), and then moved 
the serial port object to that thread.  I think maybe I need to parent the 
QThread object, but I don't know if this is what was causing the problem or 
not.  The code, as I originally had it (with the deleteLater() call) had been 
working for months, so I'm not sure what I did to change this.  As far as I 
know, I've only recently been making GUI changes, that shouldn't have anything 
to do with the thread.

But I think my real question right now is, how can I use QtCreator's debugging 
setup to help track this down?  Currently I'm setting a breakpoint at 
MainWindow::~MainWindow, then I step through my MainWindow destructor, all of 
my code works, it's only as I exit my destructor and all the Qt child deletion 
stuff happens that it segfaults.  I'm building my stuff in debug mode, and 
Dependency Walker claims the debug executable is looking for all the Qt debug 
libraries (Qt*d.dll), but I don't seem to be able to step into Qt code to know 
which QAction is causing the problem.

Sean
_______________________________________________
Qt-creator mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/qt-creator

Reply via email to