是否可以提示 Windows 虚拟内存管理器将特定进程从交换中移出?
我经常发现自己遇到的情况是,所有常规程序通常会使用大约 50% 的 RAM,特别是嵌入式目标的 IDE 及其相关的调试器。
然后我让一个占用大量内存的进程运行 - 例如 wireshark 或某个周末积累数据的进程,所有内容都会被交换出去 - 就像它们应该的那样。大型进程完成后,大多数进程都留在交换区中。
然后,偶尔暂停以重新交换进程会导致调试器出现问题,这可能是由于 IDE 和硬件调试器之间的通信时序问题造成的。因此,在经过足够多的尝试将 IDE 中的调试数据重新交换出来之前,对目标设备的控制可能是不连续的。
答案1
KerrekSB 为此开发了一个特殊的工具:
https://stackoverflow.com/a/2940209/684229
它在 GiTHUB 上有二进制文件:https://github.com/louisdx/unpage
在运行过程中,您会收到很多错误“无法从 0x....000 读取一个字节,错误 299(读取 0 字节)”,但这不是问题,该工具运行良好。