Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在使用poco的linux上卸载库失败_C++_Linux_Poco Libraries - Fatal编程技术网

C++ 在使用poco的linux上卸载库失败

C++ 在使用poco的linux上卸载库失败,c++,linux,poco-libraries,C++,Linux,Poco Libraries,我正在使用poco加载和卸载库。在windws上一切正常,但在Linux上,它在poco::ClassLoader::unloadLibrary(libraryName)函数调用上失败。它只是进入这个函数,它永远不会出现,也不会抛出异常。我还有一个。所以库工作得很好 我知道你不能告诉我它失败的确切原因,但如果我知道可能的原因,它可以帮助我,也许有什么工具可以帮助我找出它? 谢谢它可能正在等待一些资源被释放和释放。poco有没有可能追踪到创建的对象?!这可能是因为unload方法正在等待的锁或状态

我正在使用poco加载和卸载库。在windws上一切正常,但在Linux上,它在
poco::ClassLoader::unloadLibrary(libraryName)
函数调用上失败。它只是进入这个函数,它永远不会出现,也不会抛出异常。我还有一个
。所以
库工作得很好

我知道你不能告诉我它失败的确切原因,但如果我知道可能的原因,它可以帮助我,也许有什么工具可以帮助我找出它?
谢谢

它可能正在等待一些资源被释放和释放。poco有没有可能追踪到创建的对象?!这可能是因为unload方法正在等待的锁或状态恰好被解锁。您可以使用内存探查器来检查那些未发布的对象。

您是否尝试过获取源代码并附加调试器,以便查看其阻塞的确切位置?我目前没有适用于Linux的debbuger,我必须找到一些东西,似乎没有其他方法可以解决这个问题:SSLDNT gdb应该自动安装在大多数linus发行版上吗?如果它不在您的系统上,请尝试
sudo apt get install gdb
,以下是我设法找到的答案:1。在卸载共享库之前,我使用了sleep(60),以便检查在我的进程2中加载了哪些共享库。我设法从poco函数unloadLibrary捕获了一些异常,所以在catch块中我放置了无限循环。4.启动了我的程序,在调用poco::unloadLibrary之前,我有时间检查是否有我的共享库加载了lsof-p,它就在那里。一分钟后,我再次检查了它,它已经不在了,所以它被卸载了,尽管poco抛出了异常。。。我将检查什么是异常它正在抛出Poco::SystemException,但我看不到消息。当我试图用调试系统打印它时,它崩溃了,如果我试图在终端中打印消息,也会发生同样的事情。若我只是捕获异常而什么也不做,那个么我就并没有问题,库也被卸载了,但我不喜欢捕获异常而忽略它。。。