我们让这位客户抱怨说,产品在正常运行 2-5 分钟后不断崩溃。花了几天的时间猜测,但我们得出以下结论:
当进程终止而不留下任何痕迹(事件日志/崩溃转储)时,有两种选择:
1.我们自己的进程正在调用 TerminateProcess()
2.其他人正在杀死我们。
要捕获自杀式调用堆栈(案例 1),您只需要运行“Adplus -crash -CTCFG ...”
,唉,这无助于解决我们的客户问题。
我们开始对我们的客户耳语,“也许有人在杀死我们,也许是病毒或其他什么……?!”。
客户对此持怀疑态度(“幽灵 / 病毒 / 守护进程?”),但就在我们被踢出去之前,我们被一些系统管理员的供词所救。他想起了他们定期运行的脚本来监控我们的进程。该脚本错误地认为我们被绞死并强制终止进程(Yack!)。
现在问题来了:
下一次,我们想要一个工具或技术来捕捉谁正在杀死我们的进程?(我知道有一些黑客工具可以避免被杀,但我只想记录连环杀手进程 PID/NAME 是什么。)
他们有任何官方/非黑客的方式来做到这一点吗?