what does "exited abnormally with signal 9: Killed: 9" mean

16

How to read error codes which appear in the console?

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

Here what does signal 9 mean, are there any more signals apart from it. Any documentation available for it.

I get this kind of error, when a App. launched from Xcode is terminated by "Stop" button in Xcode toolbar.

(Another way to get this error is , to press home button, then double tap home button and close the app.)

Things even get worse when I launch the App. again, by tapping on App. icon on iPad Screen, App crashes and throws "libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary"

From finding on stack overflow , I see that this error is found in iOS 6 devices.

This url states that it's a SIGKILL error and it happens when "application is being terminated immediately, without any chance to clean up or catch and handle the signal"

So, I think releasing objets in -(void) didReceiveMemoryWarning would not help to solve it, then what could be a definite solution?

- (void)didReceiveMemoryWarning 
{
    [super didReceiveMemoryWarning];

    // Release objects.
    obj1 = nil;
    [view1 removeFromSuperView];
    view1 = nil;
    ...
}
memory
ios6
signals
xcode4.5
crash-reports
asked on Stack Overflow May 2, 2013 by weber67 • edited Sep 13, 2019 by Paulo Mattos

4 Answers

15

It means that the application received a signal. Some signal could be handled by the applications, others, not. Signal 9 means that the application needs to be killed, it is not handled by the process, but by the Linux scheduler. The signal to terminate the process that is handled by the process is SIGTERM(15), but, if the process doesn't handle it property, then the process continues to live.

here are the major signals:

   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
answered on Stack Overflow Jan 16, 2015 by Breno Leitão
2

On UNIX systems the normal way to force terminate an app process is with

kill -9 PROCESS_ID

This sends the app the signal number nine which means: "you quit, NOW"

Generally unhandled exceptions will also cause the OS to terminate apps with this signal. Also killing an app via the "task switcher" does the same thing.

answered on Stack Overflow Aug 21, 2013 by Cocoanetics
1

I know the original question was asking what does signal 9 mean, but I found this while looking for how to prevent it.

For me this was caused by sending a Local Notification and not implementing

application:didReceiveLocalNotification

in my AppDelegate. Once I did this, even with the method empty the crash did not reappear. Chances are there is something being called by the system that is not being handled by your code.

answered on Stack Overflow Feb 24, 2015 by Chris
0

in linux there are around 64 signals (more than 64 in some system) ..if you want to see all signals numbering just type "kill -l" without quote on the terminal you will see all the list of signal these. signals are generated by the kernel or by kill system call by user on the particular application(e.g. kill -n app_name ). signal 9 is SIGKILL this is use to kill the application. though we can also mask some of the signals but not all signals can be masked in an application. for future ref. u can go here

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

and also see the man page of signal you will get to know more

answered on Stack Overflow Dec 23, 2013 by user2760375

User contributions licensed under CC BY-SA 3.0