我正在做一些我正在运行的软件的分析工作。该软件似乎有一些内存问题,沿线难以追查。我们决定使用Sysinternals VMMap来跟踪软件使用的内存。在批处理脚本中使用VMMap
我们有VMMap使用Windows调度程序每20秒导出一次使用情况,以启动一个批处理脚本,该脚本将目标进程PID拉回并启动VMMap。该过程运行一段时间,输出显示出来的目录,但过了一段时间停止。 Windows调度程序报告作业正常运行,并在触发器意味着再次没有输出时启动另一个实例。
经过一番调查后,它看起来像VMMap无法打开进程,并试图通过其GUI来报告错误。由于我们正在批量运行,因此我们无法看到此错误消除它。这导致了许多过程的产生,但实际上并没有做任何事情。
有没有人在使用VMMap时遇到过这个问题,或者知道任何可能有用的东西?我想可能有一些我可以通过的标志抑制消息,或者我可以在批处理中处理它,但Google没有帮助,也没有Sysinternals论坛。任何帮助将非常感激。
这是我们最终选择的方法。我们通过在调用之前重新检查传入一个无效PID的可能性最小化(因为它在for循环中,有时PID在它到达之前关闭),并且在我们知道它们不应该正在运行时关闭正在运行的任何VMMap进程。 – MattD 2013-03-25 14:47:19