This table describes what each signal means.
| Signal | Description | Default action |
|---|---|---|
| SIGABRT | Abnormal termination, issued by functions such as abort() | Kill the process and write a dump file |
| SIGALRM | Alarm clock, issued by functions such as alarm() | Kill the process |
| SIGBUS | Bus error, or a memory parity error (a QNX Neutrino-specific interpretation). If a second fault occurs while your process is in a signal handler for this fault, the process is terminated. | Kill the process and write a dump file |
| SIGCHLD or SIGCLD | A child process terminated | Ignore the signal, but still let the process's children become zombies |
| SIGCONT | Continue the process. You can't block this signal. | Make the process continue if it's STOPPED; otherwise ignore the signal |
| SIGDEADLK | A mutex deadlock occurred.
If a process dies while holding a mutex, and you haven't called
SyncMutexEvent()
to set up an event to be delivered to the mutex's owner when the mutex
dies, the kernel delivers a SIGDEADLK to all
threads that are waiting on the mutex without a timeout.
SIGDEADLK and SIGEMT refer to the same signal. Some utilities (e.g., gdb, ksh, slay, and kill) know about SIGEMT, but not SIGDEADLK. |
Kill the process and write a dump file |
| SIGEMT | EMT instruction (emulation trap)
SIGDEADLK and SIGEMT refer to the same signal. Some utilities (e.g., gdb, ksh, slay, and kill) know about SIGEMT, but not SIGDEADLK. |
Kill the process and write a dump file |
| SIGFPE | Floating point exception | Kill the process and write a dump file |
| SIGHUP | Hangup; the session leader died, or the controlling terminal closed | Kill the process |
| SIGILLa | Illegal hardware instruction. If a second fault occurs while your thread is in a signal handler for this fault, the process is terminated. | Kill the process and write a dump file |
| SIGINT | Interrupt; typically generated when you press CtrlC or CtrlBreak (you can change this with stty) | Kill the process |
| SIGIO | Asynchronous I/O | Ignore the signal |
| SIGIOT | I/O trap; a synonym for SIGABRT | Kill the process |
| SIGKILL | Kill. You can't block or catch this signal. | Kill the process |
| SIGPIPE | Write on pipe with no reader | Kill the process |
| SIGPOLL | System V name for SIGIO | Ignore the signal |
| SIGPROF | Profiling timer expired. POSIX has marked this signal as obsolescent; QNX Neutrino doesn't support profiling timers or send this signal. | Kill the process |
| SIGPWR | Power failure | Ignore the signal |
| SIGQUIT | Quit; typically generated when you press Ctrl\ (you can change this with stty) | Kill the process and write a dump file |
| SIGSEGV | Segmentation violation; an invalid memory reference was detected. If a second fault occurs while your process is in a signal handler for this fault, the process will be terminated. | Kill the process and write a dump file |
| SIGSTOP | Stop the process. You can't block or catch this signal. | Stop the process |
| SIGSYS | Bad argument to system call | Kill the process and write a dump file |
| SIGTERM | Termination signal | Kill the process |
| SIGTRAP | Trace trap | Kill the process and write a dump file |
| SIGTSTP | Stop signal from tty; typically generated when you press CtrlZ (you can change this with stty) | Stop the process |
| SIGTTIN | Background read attempted from control terminal | Stop the process |
| SIGTTOU | Background write attempted to control terminal | Stop the process |
| SIGURG | Urgent condition on I/O channel | Ignore the signal |
| SIGUSR1 | User-defined signal 1 | Kill the process |
| SIGUSR2 | User-defined signal 2 | Kill the process |
| SIGVTALRM | Virtual timer expired. POSIX has marked this signal as obsolescent; QNX Neutrino doesn't support virtual timers or send this signal. | Kill the process |
| SIGWINCH | The size of the terminal window changed | Ignore the signal |
| SIGXCPU | Soft CPU time limit exceeded see the RLIMIT_CPU resource for setrlimit()) | Kill the process and write a dump file |
a One possible cause for a SIGILL signal is trying to perform an operation that requires I/O privileges. A thread can request these privileges by making sure it has the PROCMGR_AID_IO ability enabled (see procmgr_ability()) and then calling ThreadCtl()) specifying the _NTO_TCTL_IO flag:
ThreadCtl( _NTO_TCTL_IO, 0 );