在工作中,经常会遇到发现一些进程无故退出,为了排查问题出现的原因,却不知道这个进程为什么退出,当你怀疑是其他进程结束时,又无从下手,因为被其他进程结束时,没有可查看的位置。 Process Monitor虽然强大,但只能看到进程启动链、看不到结束链。 这里分享一个工具 gflags.exe ,用于查看进程被其他哪个进程结束的。 1、首先你需要安装Debugging Tools for Windows,里面有大名鼎鼎的Windbg哦,不过今天要用的是其中的gflag.exe。 下载地址:
x86位版本下载:【微软官方安装版】
2、安装之后没有快捷方式,需要进目录 64位 C:\Program Files\Windows Kits\8.0\Debuggers\x64\ 32位 C:\Program Files\Windows Kits\8.1\Debuggers\x86\ 双击打开gflags.exe,选择 Silent ProcessExit 标签。 3、在Image栏里输入你希望监视的进程名。比如:notepad.exe。(按Tab) 4、勾选 Enable Silent Process Exit Monitoring(如果这个勾选是灰的,说明上一步没按TAB) 5、点击确定、OK或者Apply。 上面设置的是“记事本”的进程名,开一次记事本,直接关闭。以及开记事本用任务管理器结束进程。 然后到“Windows日志-应用程序”中看一下效果: 1、进程自己退出的,事件ID是3000 2、进程被其他进程结束的,事件ID是3001 配合 Process Monitor 工具,就能知道完整的进程启动和结束链了~!
|