[Interest] Destructor appearing twice in the stack trace?

Gian Maxera gmaxera at gmail.com
Mon Nov 9 16:43:57 CET 2015


> On 9 Nov 2015, at 15:38, Konstantin Tokarev <annulen at yandex.ru> wrote:
> 
> 
> 
> 09.11.2015, 18:22, "Etienne Sandré-Chardonnal" <etienne.sandre at m4x.org>:
>> Dear all,
>> 
>> I am debugging an app which crashes when an object is being deleted. The debuggers halt on a segmentation fault inside QObject destructor. The object deletion was requested by a call to deleteLater()
>> 
>> Here is what I get in the stack trace:
>> 
>> 0    QObject::~QObject    qobject.cpp    993    0x7ffff62c7580
>> 1    RendererInterface::~RendererInterface    rendererinterface.cpp    119    0x60664f
>> 2    RendererInterface::~RendererInterface    rendererinterface.cpp    137    0x60667e
>> 3    qDeleteInEventHandler    qobject.cpp    4391    0x7ffff62d06e5
>> 
>> How is it possible to have the destructor twice in the stack?? At the beginning I was thinking this was a GDB bug (GDB/MinGW under windows is buggy) but I get the same result when compiling the app under linux.
>> 
>> Any idea how this can happen?
> 
> Answer is definitely around lines 119-137 of rendererinterface.cpp


You are calling delete on the same object into the destructor. You are doing something like that:

delete this

inside the destructor.

Maybe there is some internal variable that got the “this” value and force the object to try to destroy itself.




More information about the Interest mailing list