0x0900000000054be4 unatexit(??) + 0x64
0x090000017026bad8 __sterm80000000_x_2fhome_2fMbuilder_2fviews_2fMbuilder_5f10_2e2_2drel_5fview2_2fKernel_2fSourceCode_2fDSSCommandsAll_2fLogoutUserFromProject_2fLogoutUserFromProject_2ecpp()() + 0x2f98
0x09000000008b9a80 __catchThrownException() + 0x60
0x09000000000e3ce0 terminate_one_library(??, ??) + 0x120
0x09000000000e35b0 terminate_libs(??, ??) + 0x190
0x09000000000e1e08 unload_libs(??) + 0x328
0x09000000000e539c terminateAndUnload(??) + 0x3c
0x090000000008b020 dlclose(??) + 0x2e0
0x090000000c0a798c MBase::SharedLibraryImpl::~SharedLibraryImpl()(0x110030710, 0x300000003, 0x9001000a0f2a360) + 0x10c
0x00000001000619d8 MBase::StrongBase<MBase::SharedLibrary*,MBase::DeleteC<MBase::SharedLibrary> >::~StrongBase()(??, ??) + 0x58
0x000000010006051c MBase::StrongPtr<MBase::SharedLibrary,MBase::DeleteC<MBase::SharedLibrary> >::~StrongPtr()(??, ??) + 0x1c
0x0000000100062bac MExec::Controller_Impl::~Controller_Impl()(??, ??, ??) + 0x6c
0x0000000100003600 MExec::Main(int,const char**)(??, ??) + 0xec0
0x0000000100000d8c main(??, ??) + 0xac
0x0000000100000620 __start() + 0x98
第二行中的ecpp()()
方法是什么?我无法理解该方法,因为编译器生成了该方法。
背景:
当我的应用程序挂起时,我使用procstack
命令获取AIX机器上的调用堆栈。并且dlclose()
花费很长时间。
谢谢@ZsigmondLőrinczy。如果方法ecpp()()是由编译器生成的析构函数,是否有任何调试技巧可以帮助查看应用程序挂起的原因?因为每次使用porcstack命令时第二行中的方法都会改变。所以我无法确定哪个析构函数需要花费很长时间。