[Interest] Advice on random program finish crash

Nuno Santos nunosantos at imaginando.pt
Wed Jan 7 11:01:32 CET 2015


Yes,

int main(int argc, char **argv)
{
    QGuiApplication app(argc, argv);

    ...

    return app.exec();
}


> On 07 Jan 2015, at 09:54, Igor Mironchik <igor.mironchik at gmail.com> wrote:
> 
> Hi, I have one question: is QApplication static too?
> 
> On Wed, 07 Jan 2015 12:32:21 +0300, Nuno Santos <nunosantos at imaginando.pt>  
> wrote:
> 
>> Hi,
>> 
>> I’m having a problem with a random crash that not always happens. I  
>> would like to have your advice on how to find the origin of it.
>> 
>> This crash always happens on program exit and the stack trace is the  
>> following:
>> 
>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>> 0   org.qt-project.QtCore         	0x0000000109a03549  
>> QMutexPrivate::allocate() + 105
>> 1   org.qt-project.QtCore         	0x0000000109a02d1c  
>> QBasicMutex::lockInternal(int) + 92
>> 2   org.qt-project.QtCore         	0x0000000109a02c64 QMutex::lock() + 52
>> 3   org.qt-project.QtCore         	0x0000000109a0b6fd  
>> QWaitCondition::wait(QMutex*, unsigned long) + 173
>> 4   org.qt-project.QtCore         	0x0000000109a0aeae  
>> QThread::wait(unsigned long) + 110
>> 5   org.qt-project.QtNetwork      	0x000000010a4870da  
>> QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate() + 58
>> 6   org.qt-project.QtNetwork      	0x000000010a48722e  
>> QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate() + 14
>> 7   org.qt-project.QtCore         	0x0000000109c3e7c7  
>> QObject::~QObject() + 1879
>> 8   org.qt-project.QtNetwork      	0x000000010a483c16  
>> QNetworkAccessManager::~QNetworkAccessManager() + 262
>> 
>> The only particularity of this QNetworkAccessManager is the fact that it  
>> is instantiated on a class that is a singleton:
>> 
>> class Manager : public QObject
>> {
>> public:
>> 
>> 	static Manager* sharedManager();
>> 
>> 	...
>> 
>> 	QNetworkAccessManager* networkAccessManager();
>> 
>> 	...
>> 
>> protected:
>> 
>> 	Manager();
>> 	~Manager();
>> 
>> 	...
>> 	
>> 	QNetworkAccessManager _networkAccessManager;
>> };
>> 
>> 
>> Manager* Manager::sharedManager()
>> {
>> 	QMutexLocker lock(&managerMutex);
>> 	static Manager manager;
>> 	return &manager;
>> }
>> 
>> Manager::Manager() :
>> 	_networkAccessManager()
>> {
>> 	...	
>> }
>> 
>> Manager::~Manager()
>> {
>> 	
>> }
>> 
>> Is there any obvious reason for this crash to happen randomly at program  
>> termination?
>> 
>> Thanks,
>> 
>> Regards,
>> 
>> Nuno Santos
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
> 
> 
> -- 
> Best Regards,
> Igor Mironchik.
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest




More information about the Interest mailing list