我的一个应用程序启动了java.exe,但在此期间,“java.exe”被其他进程终止。
我如何知道哪个进程终止了 java.exe。我正在使用 Windows XP SP 2。
答案1
tl;dr:使用 gflags.exe 和 Windows 的事件查看器启用并检查静默进程退出日志。
安装 Windows 的调试工具
- 去Windows 的 SDK 下载页面;
- 下载并运行安装程序;
- 选择所需的工具。只需要 Windows 调试工具。
默认情况下,工具安装到 C:/Program Files (x86)/Windows Kits
找到适合您的应用程序的 gflags 版本
如果使用默认安装路径,32 位 gflags 位于 C:/Program Files (x86)/Windows Kits/10/Debuggers/x86,64 位位于 C:/Program Files (x86)/Windows Kits/Debuggers/x64
启用日志记录Enable Logging
- 运行适合该应用程序的 gflags.exe 版本并切换到“静默进程退出”选项卡;
- 在“图像”字段中输入进程的图像名称。在本例中为“java.exe”;
- 按下 tab 键以便 gflags 选择图像并刷新选项字段;
- 启用静默退出监控;
- 如果您希望在进程退出时收到通知,请启用通知;
- 如果您确定程序不会自行退出,请启用忽略自行退出(我不建议您一开始就启用它。仅在后续测试中启用它);
- 按“OK”保存设置并关闭 gflags。
现在,每当应用程序被终止时,都应记录一个事件。您可以在 Windows 的事件查看器中查看事件。按 Windows 键打开开始菜单,输入“事件”,它就会弹出。
打开后,在右侧导航到事件查看器 > Windows 日志 > 应用程序。双击事件并转到“详细信息”选项卡。它应该可以帮助您确定是什么终止了您的进程。