我正在对我工作的地方运行的一些软件做一些分析工作。这款软件似乎存在内存问题,事实证明,这些问题很难被追踪到。我们决定使用Sysinternals来跟踪软件所使用的内存。
我们让VMMap每隔20秒导出一次使用情况,使用Windows计划程序启动一个批处理脚本,该脚本拉回目标进程PID并使用它启动VMMap。该进程运行了一段时间,输出显示在out目录中,但过了一段时间就停止了。Windows调度程序报告作业运行正常,并将在触发时启动另一个实例,再次没有输出。
经过一些调查后,看起来VMMap无法打开该进程,并试图通过其图形用户界面报告错误。因为我们是批量运行的,所以我们不能看到这个错误而忽略它。这导致了许多进程被衍生出来,但实际上并没有做任何事情。
有没有人在使用VMMap时遇到这个问题,或者知道任何可能有帮助的东西?我在想,也许我可以传递一些标志来抑制消息,或者也许我可以通过某种方式在批处理中处理它,但Google没有帮助,Sysinternals论坛也没有帮助。任何帮助都将不胜感激。
发布于 2013-03-24 15:30:11
VMMap是一个图形用户界面工具,所以尝试以自动化的方式捕获它的输出将是困难的。相反,可以尝试使用另一个SysInternals工具Handle,它捕获了许多相同的信息,但是在命令行导出/报告它,在命令行中捕获它要容易得多。或者,在使用VMMap时,不要以自动重复的方式运行输出,而是让脚本以某种方式检测错误或缺少预期的结果/数据,然后停止,以便可以检查图形用户界面输出。
发布于 2013-03-24 17:53:54
所有Sysinternals工具在第一次在新机器上启动时都会弹出同意对话框,以接受其许可证。我认为您确实将该工具部署到了一台生产机器上,它试图显示同意对话框,但没有人按下ok。
他们基本上在机器上创建了一个注册表项,如果你需要一个完全自动化的部署,你可以伪造它,或者你可以在目标机器上为有问题的用户启动一次。
https://stackoverflow.com/questions/15571411
复制相似问题