描述一下问题:
想在程序申请内存时获得当前进程占用内存大小,以便找到内存占用瞬间增大的点
实现方式是在hook heapalloc时,调用GetProcessMemoryInfo获取内存大小并记录,结果导致GetProcessMemoryInfo后边的所有代码都没法进入
问题找了很久,之后求助开发宋大侠找到了原因,原来,GetProcessMemoryInfo内部实现的时候也会调用heapalloc导致递归执行无限循环了。
最终如下:
CRITICAL_SECTION g_csHeapAlloc = {0};
class t_autoCS
{
public:
t_autoCS(CRITICAL_SECTION& p_cs)
{
::InitializeCriticalSectionAndSpinCount(&p_cs, 0x800000