调试器自杀释放僵尸 [英] debugger committing suicide to free the zombie

查看:145
本文介绍了调试器自杀释放僵尸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从我的引擎让德codeD架和我的Andr​​oid使用SurfaceView播放。
但是它扮演了2-3秒,然后我的错误应用程序崩溃调试自杀释放僵尸。

I am getting decoded frames from my engine and my playing it using SurfaceView in android. But it plays for 2-3 seconds and then my application crashes with the error "debugger committing suicide to free the zombie".

请帮我。

我使用Android SDK中2.1。

I am using Android SDK 2.1.

推荐答案

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

*I thought it was a game alert not an Android debug log message =| *

僵尸进程

在Unix和类Unix计算机操作系统,一个僵尸进程或解散的过程已完成执行,但仍然在进程表中的条目的过程。此项目仍然需要允许启动的(现在的僵尸)进程阅读它的退出状态的过程。术语僵尸进程从僵尸不死人的共同定义派生的。在长期的生动的比喻,子进程已经死亡,但尚未收获。此外,与正常过程,kill命令对僵尸进程没有任何影响。

On Unix and Unix-like computer operating systems, a zombie process or defunct process is a process that has completed execution but still has an entry in the process table. This entry is still needed to allow the process that started the (now zombie) process to read its exit status. The term zombie process derives from the common definition of zombie—an undead person. In the term's colorful metaphor, the child process has died but has not yet been reaped. Also, unlike normal processes, the kill command has no effect on a zombie process.

当一个处理结束时,所有的存储器和与它相关联的资源的被释放,以便它们可以被其他过程中使用。但是,该方法的进程表条目保持。家长可以通过执行等系统调用,在此阶段僵尸被删除读孩子的退出状态。等待电话可以以顺序code被执行,但它在为SIGCHLD信号,父母收到每当孩子已经死亡的处理程序通常执行。

When a process ends, all of the memory and resources associated with it are deallocated so they can be used by other processes. However, the process's entry in the process table remains. The parent can read the child's exit status by executing the wait system call, at which stage the zombie is removed. The wait call may be executed in sequential code, but it is commonly executed in a handler for the SIGCHLD signal, which the parent receives whenever a child has died.

之后,在进程表的进程ID和条目然后可以重复使用。但是,如果父母不能调用wait,僵尸会在进程表离开了。在某些情况下,这可能是可取的,例如,如果父创建另一个子过程中,它可确保它不会被分配相同进程ID。在现代的类UNIX系统(即遵守这方面的SUSv3规范),下列特殊情况适用:如果家长通过设置它的处理程序,以SIG_IGN(而不是简单地忽略默认信号)明确地忽略SIGCHLD或有SA_NOCLDWAIT标志集,所有的孩子退出状态信息将被丢弃,没有僵尸进程将被留下。

After the zombie is removed, its process ID and entry in the process table can then be reused. However, if a parent fails to call wait, the zombie will be left in the process table. In some situations this may be desirable, for example if the parent creates another child process it ensures that it will not be allocated the same process ID. On modern UNIX-like systems (that comply with SUSv3 specification in this respect), the following special case applies: if the parent explicitly ignores SIGCHLD by setting its handler to SIG_IGN (rather than simply ignoring the signal by default) or has the SA_NOCLDWAIT flag set, all child exit status information will be discarded and no zombie processes will be left.

一个僵尸进程是不一样的孤儿进程。一个孤立的过程是仍在执行的过程,但其父母已经死亡。它们不会成为僵尸进程;相反,它们是由init(进程ID 1),等待其子项上获得通过。

A zombie process is not the same as an orphan process. An orphan process is a process that is still executing, but whose parent has died. They do not become zombie processes; instead, they are adopted by init (process ID 1), which waits on its children.

这是WIKI! =)

这篇关于调试器自杀释放僵尸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆