当附加进程分配的内存大于某个值时,是否可以中断调试器?
最好使用 Visual Studio 2005,但也可以选择其他 IDE/调试器。
没有直接的方法可以做到这一点。另一种方法是在 CRT 分配代码中的某处设置普通断点,并在命中计数是 2000 的倍数时将其设置为中断。您将足够快地达到所需状态。
我不知道 Visual Studio 中有任何直接的方法,但是当内存提交阈值达到某个值(-m 选项)时,您可以使用 ProcDump 创建故障转储。
然后您需要使用 WinDbg(Windows 调试工具的一部分)来检查堆。
这个问题可能很旧,但仍然相关。
您可以使用此功能检查可用内存:
https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-globalmemorystatusex
然后,偶尔从主线程调用该函数,或者运行一个单独的线程来监视主线程。您可以在监控代码中设置断点,以便在内存使用超过定义的阈值时中断执行。