2013-05-02 70 views
10

如何读取出现在控制台中的错误代码?什么是“信号异常退出9:已杀死:9”是指

<Warning>: ....... -exited abnormally with signal 9: Killed: 9 
<Warning>: ....... -1 err = Bad file descriptor (0x00000009) 

这里信号9是什么意思,除此之外还有更多的信号。任何可用的文档。

我得到这种错误,当一个应用程序。从Xcode启动的终止由Xcode工具栏中的“停止”按钮终止。

{获得此错误的另一种方法是,按主页按钮,然后双击主页按钮并关闭应用程序。 }

当我启动应用程序时,事情会变得更糟。 再次,通过点击应用程序。图标在iPad屏幕上,应用程序崩溃并引发“libMobileGestalt copySystemVersionDictionaryValue:无法从系统版本字典查找ReleaseType”

从查找堆栈溢出,我看到这个错误是在iOS 6设备中找到。

url states,这是一个SIGKILL错误,它发生在“应用程序被立即终止,没有任何机会,以清理或捕获并处理信号”

所以,我认为在“释放OBJETS - (空)didReceiveMemoryWarning“无助于解决它,那么什么可能是一个明确的解决方案?

-(void) didReceiveMemoryWarning{ 
    [super didReceiveMemoryWarning]; 
    //release objects 
    obj1=nil; 
    [view1 removeFromSuperView]; 
    view1=nil; 
    ........ 
} 
+0

查看[signal.h手册页](http://developer.apple.com/library/ios/#documentation/system/conceptual/manpages_iphoneos/man3/signal.3.html)定义的信号。 – nif 2013-06-20 16:39:53

回答

0

在UNIX系统上正常的方式来强制终止应用程序是

kill -9 PROCESS_ID 

这会将应用程序的信号九数,这意味着:“你不干,现在”

一般未处理的异常也会导致操作系统终止使用此信号的应用程序。通过“任务切换器”来杀死应用程序也是一样。

0

在linux中,大约有64个信号(在某些系统中超过64个)..如果你想看到所有的信号编号只需在终端输入“kill -l”而没有引号,你会看到所有的信号列表。信号由内核或用户在特定应用程序上的kill系统调用产生(例如kill -n app_name)。信号9是SIGKILL这是用来杀死应用程序的。尽管我们也可以屏蔽一些信号,但并不是所有的信号都可以在应用程序中被屏蔽掉。供将来参考。 ü可以去这里

http://en.wikipedia.org/wiki/Unix_signal

,也看到信号,你会结识更多的

3

这意味着应用程序接收到的信号的手册页。一些信号可以由应用程序处理,而另一些则不可以。信号9意味着应用程序需要被终止,它不是由进程处理,而是由Linux调度程序处理。终止进程处理的进程的信号是SIGTERM(15),但是如果进程没有处理它的属性,那么进程将继续生效。

这里是主要的信号:

Signal  Value  Action Comment 
    ────────────────────────────────────────────────────────────────────── 
    SIGHUP  1  Term Hangup detected on controlling terminal 
           or death of controlling process 
    SIGINT  2  Term Interrupt from keyboard 
    SIGQUIT  3  Core Quit from keyboard 
    SIGILL  4  Core Illegal Instruction 
    SIGABRT  6  Core Abort signal from abort(3) 
    SIGFPE  8  Core Floating point exception 
    SIGKILL  9  Term Kill signal 
    SIGSEGV  11  Core Invalid memory reference 
    SIGPIPE  13  Term Broken pipe: write to pipe with no 
           readers 
    SIGALRM  14  Term Timer signal from alarm(2) 
    SIGTERM  15  Term Termination signal 
    SIGUSR1 30,10,16 Term User-defined signal 1 
    SIGUSR2 31,12,17 Term User-defined signal 2 
    SIGCHLD 20,17,18 Ign  Child stopped or terminated 
    SIGCONT 19,18,25 Cont Continue if stopped 
    SIGSTOP 17,19,23 Stop Stop process 
    SIGTSTP 18,20,24 Stop Stop typed at terminal 
    SIGTTIN 21,21,26 Stop Terminal input for background process 
    SIGTTOU 22,22,27 Stop Terminal output for background process 
1

我才知道,原来问题是问这是什么信号9的意思,但我发现这一点的同时寻找如何防止它。

对我来说,这是通过发送本地通知,并在我的AppDelegate不执行

application:didReceiveLocalNotification 

引起的。一旦我做到了这一点,即使方法清空,崩溃也不会再次出现。有可能是由系统调用的东西没有被你的代码处理。

相关问题