web*_*r67 14 memory signals crash-reports ios6 xcode4.5
如何读取控制台中出现的错误代码?
<Warning>: ....... -exited abnormally with signal 9: Killed: 9
<Warning>: ....... -1 err = Bad file descriptor (0x00000009)
Run Code Online (Sandbox Code Playgroud)
这里信号9意味着什么,除此之外还有更多的信号.任何可用的文档.
当一个应用程序,我得到这种错误.从Xcode启动的Xcode工具栏中的"停止"按钮终止.
{获得此错误的另一种方法是,按主页按钮,然后双击主页按钮并关闭应用程序.}
当我启动应用程序时,情况甚至会变得更糟.再次,通过点击应用程序.iPad屏幕上的图标,应用程序崩溃并抛出"libMobileGestalt copySystemVersionDictionaryValue:无法从系统版本字典中查找ReleaseType"
从查找堆栈溢出,我看到在iOS 6设备中发现此错误.
这个url声明它是一个SIGKILL错误,它发生在"应用程序立即终止,没有任何机会清理或捕获和处理信号"
因此,我认为在" - (void)didReceiveMemoryWarning"中释放objets无助于解决它,那么什么可以是一个明确的解决方案?
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release objects.
obj1 = nil;
[view1 removeFromSuperView];
view1 = nil;
...
}
Run Code Online (Sandbox Code Playgroud)
这意味着应用程序收到了信号。某些信号可以由应用程序处理,而其他则不能。信号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
Run Code Online (Sandbox Code Playgroud)
在 UNIX 系统上,强制终止应用程序进程的正常方法是
kill -9 PROCESS_ID
Run Code Online (Sandbox Code Playgroud)
这会向应用程序发送九号信号,意思是:“你现在就退出”
通常,未处理的异常也会导致操作系统使用此信号终止应用程序。通过“任务切换器”杀死应用程序也能起到同样的作用。