Memory 动态加载各种插件的进程中的内存泄漏

Memory 动态加载各种插件的进程中的内存泄漏,memory,plugins,memory-leaks,valgrind,dlopen,Memory,Plugins,Memory Leaks,Valgrind,Dlopen,有一个进程process1,它对各种库执行dl\u open(动态加载/卸载)。让我们将这些库称为插件(plugin1、plugin2、plugin3…, 现在,我可以在使用valgrind的process1中看到内存泄漏(同样)。但我想确定,可能(主要)导致泄漏的确切插件。有没有一个简单的方法可以做到这一点?除a)将每个插件作为一个单独的进程运行通常,当您在Valgrind memcheck下运行应用程序并启用泄漏检测时,应用程序终止时,它将转储泄漏统计数据 有两种机制可以让memcheck在

有一个进程process1,它对各种库执行
dl\u open
(动态加载/卸载)。让我们将这些库称为插件(plugin1、plugin2、plugin3…,


现在,我可以在使用valgrind的process1中看到内存泄漏(同样)。但我想确定,可能(主要)导致泄漏的确切插件。有没有一个简单的方法可以做到这一点?除a)将每个插件作为一个单独的进程运行

通常,当您在Valgrind memcheck下运行应用程序并启用泄漏检测时,应用程序终止时,它将转储泄漏统计数据

有两种机制可以让memcheck在执行期间的其他时间运行泄漏转储

  • 使用Valgrind客户端通信宏插入代码
  • 使用vgdb命令
  • 几年前我写了一封信

    例如,您的代码中可能有类似的内容

    dlclose(myHandle);
    VALGRIND_DO_LEAK_CHECK;
    

    要在使用dlclose时获得更好的堆栈跟踪,最好使用--keep debuginfo=yes。