什么是dlclose()在挂起时做什么?

时间:2016-07-01 03:49:46

标签: c++ debugging aix hang callstack

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命令时第二行中的方法都会改变。所以我无法确定哪个析构函数需要花费很长时间。

0 个答案:

没有答案