Skip to content

Instantly share code, notes, and snippets.

@jperkin
Created July 9, 2014 19:28
Show Gist options
  • Save jperkin/649a054b4d50c4b7de52 to your computer and use it in GitHub Desktop.
Save jperkin/649a054b4d50c4b7de52 to your computer and use it in GitHub Desktop.
__cxa_finalize
core '/var/cores/core.uic.88923' of 88923: /opt/local/qt3/bin/uic -nounload -tr tr2i18n -i kspellui.h ./kspellui.
fffffd3da28abb13 _ZN18QMetaObjectCleanUpD1Ev () + 63
fffffd7fff088f2c __cxa_finalize (0) + 8c
fffffd7fff088fac _exithandle () + 2c
fffffd7fff072c01 exit () + 11
0000000000411156 _start () + 76
# mdb /var/cores/core.uic.88923
Loading modules: [ libc.so.1 ld.so.1 ]
> $C ! c++filt
fffffd7fffdfe600 libqt-mt.so.3.3.8`QMetaObjectCleanUp::~QMetaObjectCleanUp()+0x63()
fffffd7fffdfe650 libc.so.1`__cxa_finalize+0x8c(0)
fffffd7fffdfe670 libc.so.1`_exithandle+0x2c()
fffffd7fffdfe690 libc.so.1`exit+0x11()
fffffd7fffdfe6b0 _start+0x76()
> $r
%rax = 0xfffffd3da2ca03c8 %r8 = 0x0000000000000000
%rbx = 0xfffffd5ce444f4a8 %r9 = 0x0101010101010101
%rcx = 0x00000000004ca220 %r10 = 0x0000000000000000
%rdx = 0x0000000000000000 %r11 = 0x0000000000000000
%rsi = 0x0000000000000000 %r12 = 0xfffffd7fff188a00
%rdi = 0x0000000000000000 %r13 = 0xfffffd7fff18b300
%r14 = 0xfffffd7ffef86dc0
%r15 = 0x0000000000000000
%cs = 0x0053 %fs = 0x0000 %gs = 0x0000
%ds = 0x0000 %es = 0x0000 %ss = 0x004b
%rip = 0xfffffd3da28abb13 libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x63
%rbp = 0xfffffd7fffdfe600
%rsp = 0xfffffd7fffdfe5f0
%rflags = 0x00010202
id=0 vip=0 vif=0 ac=0 vm=0 rf=1 nt=0 iopl=0x0
status=<of,df,IF,tf,sf,zf,af,pf,cf>
%gsbase = 0x0000000000000000
%fsbase = 0xfffffd7ffefa2a40
%trapno = 0xe
%err = 0x4
> _ZN18QMetaObjectCleanUpD1Ev::dis
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev: pushq %rbp
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+1:movq +0x376df0(%rip),%rax <0xfffffd3da2c228a8>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+8:movq %rsp,%rbp
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0xb: pushq %r12
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0xd: pushq %rbx
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0xe: movq %rdi,%rbx
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x11: movq (%rax),%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x14: testq %rdi,%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x17: je +0x24 <libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x3d>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x19: leaq +0x3f2e50(%rip),%rsi <libqt-mt.so.3.3.8`_ZL14qt_metaobjects>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x20: call -0xb9875 <PLT=libqt-mt.so.3.3.8`_ZN10QMutexPool3getEPv>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x25: testq %rax,%rax
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x28: movq %rax,%r12
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x2b: je +0x10 <libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x3d>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x2d: movq %rax,%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x30: call -0xbbf95 <PLT=libqt-mt.so.3.3.8`_ZN6QMutex4lockEv>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x35: movq %r12,%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x38: call -0xbbf8d <PLT=libqt-mt.so.3.3.8`_ZN6QMutex6unlockEv>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x3d: subl $0x1,+0x3f2e34(%rip) <libqt-mt.so.3.3.8`_ZL20qt_metaobjects_count
>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x44: jne +0x1d <libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x63>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x46: movq +0x3f2e23(%rip),%rdi <libqt-mt.so.3.3.8`_ZL14qt_metaobjects>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x4d: testq %rdi,%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x50: je +0x6 <libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x58>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x52: movq (%rdi),%rax
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x55: call *0x18(%rax)
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x58: movq $0x0,+0x3f2e0d(%rip) <libqt-mt.so.3.3.8`_ZL14qt_metaobjects>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x63: movq (%rbx),%rax
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x66: testq %rax,%rax
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x69: je +0x1f <libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x8a>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x6b: movq (%rax),%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x6e: testq %rdi,%rdi
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x71: je +0x9 <libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x7c>
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x73: movq (%rdi),%rax
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x76: call *0x8(%rax)
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x79: movq (%rbx),%rax
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x7c: movq $0x0,(%rax)
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x83: movq $0x0,(%rbx)
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x8a: popq %rbx
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x8b: popq %r12
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x8d: popq %rbp
libqt-mt.so.3.3.8`_ZN18QMetaObjectCleanUpD1Ev+0x8e: ret
@jperkin
Copy link
Author

jperkin commented Jul 9, 2014

Code in question:

QMetaObjectCleanUp::~QMetaObjectCleanUp()
{
#ifdef QT_THREAD_SUPPORT
    QMutexLocker( qt_global_mutexpool ?
                  qt_global_mutexpool->get( &qt_metaobjects ) : 0 );
#endif // QT_THREAD_SUPPORT
    if ( !--qt_metaobjects_count ) {
        delete qt_metaobjects;
        qt_metaobjects = 0;
    }
    if ( metaObject ) {
        delete *metaObject;
        *metaObject = 0;
        metaObject = 0;
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment