如何获取使用 LoadLibrary() 加载的 DLL 的内存使用情况?
How to get the memory usage of DLLs loaded with LoadLibrary()?
我的 Windows C/C++ 应用程序加载了大约 30 个 "plugin" DLL,其中一个目前有内存泄漏,我正在努力追踪。
不幸的是,我不能一次只加载一个 DLL,因为泄漏只发生在 DLL 交互时。
我尝试在 LoadLibrary() 返回的句柄上使用 GetProcessMemoryInfo(),但失败并出现(权限?)访问错误。
我试图找到一种方法来获得句柄所需的权限,但一直无法这样做,因为看起来这只能在对进程进行操作时完成(使用 OpenProcess() 和类似的)?
我也尝试过在 DLL 本身中使用 GetProcessMemoryInfo(GetCurrentProcess()),但它们都报告(我猜这并不奇怪)父进程的内存信息。
所以我没有想法...有办法做到这一点吗?
提前致谢!
CRT 函数可用于通过在与 DLL 交互之间添加监视器来定位内存泄漏。
http://www.codeproject.com/Articles/10520/Detecting-memory-leaks-by-using-CRT-diagnostic-fun
我的 Windows C/C++ 应用程序加载了大约 30 个 "plugin" DLL,其中一个目前有内存泄漏,我正在努力追踪。 不幸的是,我不能一次只加载一个 DLL,因为泄漏只发生在 DLL 交互时。
我尝试在 LoadLibrary() 返回的句柄上使用 GetProcessMemoryInfo(),但失败并出现(权限?)访问错误。 我试图找到一种方法来获得句柄所需的权限,但一直无法这样做,因为看起来这只能在对进程进行操作时完成(使用 OpenProcess() 和类似的)?
我也尝试过在 DLL 本身中使用 GetProcessMemoryInfo(GetCurrentProcess()),但它们都报告(我猜这并不奇怪)父进程的内存信息。
所以我没有想法...有办法做到这一点吗?
提前致谢!
CRT 函数可用于通过在与 DLL 交互之间添加监视器来定位内存泄漏。
http://www.codeproject.com/Articles/10520/Detecting-memory-leaks-by-using-CRT-diagnostic-fun