我的程序是为Windows平台设计的。
有时它会因错误而终止。我不能在安装它的每台计算机上调试它,所以我添加了矢量化的异常处理程序,它将一些关于异常的信息发送到服务器。有一些0xC0000005异常;我修复了它,但程序仍然终止(我无法在我的PC上重现错误)。
我写了另一个程序,它等待主进程句柄,并在主进程终止时发送带有进程退出代码的报告。我查看了退出代码,其中大部分是0x40010004 (DBG_TERMINATE_PROCESS)。我知道当调试器附加到应用程序并终止它时,会出现此退出代码;但我确信没有调试器。
所以..。在哪些其他情况下,可以使用DBG_TERMINATE_PROCESS退出代码终止进程?
发布于 2016-05-28 02:48:00
从理论上讲,它可以是任何东西,因为TerminateProcess有一个退出代码参数。
实际上,这很可能是由于系统关机造成的。当Windows关闭时,它会尝试优雅地退出正在运行的程序(更多关于here的信息。如果他们拒绝退出,他们可能会被系统终止,退出代码为0x40010004。例如,如果您有一个显示模式对话框的图形用户界面程序,然后您尝试关闭系统,系统将提示您一条消息"xy.exe正在阻止关机“。如果你点击“强制关机”,进程将被终止,退出代码为0x40010004。
如果你试图重现这段代码,请注意等待你应用程序的进程HANDLE的程序可能会在你的主应用程序之前终止。
https://stackoverflow.com/questions/37078953
复制相似问题