2013-05-02 24 views
10

コンソールに表示されるエラーコードの読み方は?「シグナル9で異常終了しました:殺された:9」とはどういう意味ですか?

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

ここで、信号9は何を意味しているのですか、それ以外の信号はありますか?利用可能なすべてのドキュメント。

この種のエラーが発生します。 Xcodeから起動すると、Xcodeツールバーの "停止"ボタンで終了します。

{このエラーを表示する別の方法は、ホームボタンを押して、ホームボタンをタップしてアプリを閉じることです。 }

アプリを起動すると状況がさらに悪化します。 もう一度、Appをタップしてください。アイコンをクリックすると、アプリケーションがクラッシュして「libMobileGestalt」がスローされます。copySystemVersionDictionaryValue:システムバージョン辞書からReleaseTypeを参照できませんでした。

スタックオーバーフローで見つかったので、このエラーはiOS 6デバイスにあります。

それはSIGKILLエラーです。このurl states、そう

「アプリケーションがクリーンアップやキャッチし、信号を処理するために、あらゆる機会なしに、すぐに終了している」場合に発生するが、私は「でオブジェを解放すると思います - (無効)didReceiveMemoryWarning "はそれを解決するのに役立ちませんでしたが、それでは明確な解決策がありますか? UNIXシステムでは

-(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

答えて

0

アプリのプロセスを終了強制的に通常の方法は

kill -9 PROCESS_ID 

であるこれは、アプリ信号数9送信:「あなたは終了し、NOW」一般

を未処理の例外によって、OSはこの信号でアプリケーションを終了させます。また、「タスクスイッチャー」を介してアプリを強制終了することも同じことです。

0

linuxには64シグナル(システムによっては64以上)があります。ターミナルで「kill -l」とタイプするだけですべてのシグナルを見たい場合は、これらのシグナルのすべてのリストが表示されます。シグナルは、カーネルによって、または特定のアプリケーション(kill -n app_nameなど)上のユーザによるシステムコールの強制終了によって生成されます。シグナル9はSIGKILLですが、これはアプリケーションを終了させるのに使います。信号の一部をマスクすることもできますが、すべての信号をアプリケーションでマスクすることはできません。将来の参照のために。 uが

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

ここに行くと、また、あなたがそれは、アプリケーションが信号を受信したことを意味し

3

もっと知るようになるだろう、信号のmanページを参照してくださいすることができます。いくつかのシグナルは、アプリケーションによって処理される可能性があります。シグナル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 

を実施しないことによって引き起こされました。私がこれをやったなら、空の方法でさえ、クラッシュは再現されませんでした。コードによって処理されていないシステムによって呼び出される可能性があります。

関連する問題