调试器自杀以释放僵尸

时间:2010-05-11 11:09:52

标签: android

我从我的引擎获取解码帧,并使用Surface中的SurfaceView在Android中播放。 但它播放2-3秒然后我的应用程序崩溃,错误“调试器自杀以释放僵尸”。

请帮帮我。

我使用的是Android SDK 2.1。

1 个答案:

答案 0 :(得分:7)

****我认为这是一个游戏警报而不是Android调试日志消息= | ****

僵尸流程

在Unix和类Unix计算机操作系统上,僵尸进程或已停止进程是一个已完成执行但仍在进程表中有一个条目的进程。仍然需要此条目以允许启动(现在是僵尸)进程的进程读取其退出状态。僵尸过程这个术语来自僵尸的共同定义 - 一个不死的人。在这个词的丰富多彩的比喻中,儿童过程已经死亡,但还没有被收获。此外,与正常进程不同,kill命令对僵尸进程没有影响。

当进程结束时,与其关联的所有内存和资源都将被释放,以便其他进程可以使用它们。但是,进程表中的进程仍然存在。父级可以通过执行等待系统调用来读取子级的退出状态,在此阶段删除僵尸。等待调用可以在顺序代码中执行,但它通常在SIGCHLD信号的处理程序中执行,父母在孩子死亡时会收到该信号。

删除僵尸后,可以重复使用其进程ID和进程表中的条目。但是,如果父级无法调用wait,则僵尸将保留在进程表中。在某些情况下,这可能是合乎需要的,例如,如果父级创建另一个子进程,则确保不会为其分配相同的进程ID。在现代类UNIX系统(在这方面符合SUSv3规范)中,以下特殊情况适用:如果父通过将其处理程序设置为SIG_IGN(而不是默认忽略信号)显式忽略SIGCHLD,或者具有SA_NOCLDWAIT标志设置后,所有子退出状态信息都将被丢弃,不会留下任何僵尸进程。

僵尸进程与孤儿进程不同。孤儿进程是一个仍在执行的进程,但其父进程已经死亡。它们不会成为僵尸进程;相反,它们被init(进程ID 1)采用,它等待它的子进程。

来自WIKI的人! =)