1 //===-- SysSignal.cpp -------------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // Created by Greg Clayton on 6/18/07. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #include "SysSignal.h" 14 #include <csignal> 15 #include <cstddef> 16 17 const char *SysSignal::Name(int signal) { 18 switch (signal) { 19 case SIGHUP: 20 return "SIGHUP"; // 1 hangup 21 case SIGINT: 22 return "SIGINT"; // 2 interrupt 23 case SIGQUIT: 24 return "SIGQUIT"; // 3 quit 25 case SIGILL: 26 return "SIGILL"; // 4 illegal instruction (not reset when caught) 27 case SIGTRAP: 28 return "SIGTRAP"; // 5 trace trap (not reset when caught) 29 case SIGABRT: 30 return "SIGABRT"; // 6 abort() 31 #if defined(_POSIX_C_SOURCE) 32 case SIGPOLL: 33 return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported) 34 #else // !_POSIX_C_SOURCE 35 case SIGEMT: 36 return "SIGEMT"; // 7 EMT instruction 37 #endif // !_POSIX_C_SOURCE 38 case SIGFPE: 39 return "SIGFPE"; // 8 floating point exception 40 case SIGKILL: 41 return "SIGKILL"; // 9 kill (cannot be caught or ignored) 42 case SIGBUS: 43 return "SIGBUS"; // 10 bus error 44 case SIGSEGV: 45 return "SIGSEGV"; // 11 segmentation violation 46 case SIGSYS: 47 return "SIGSYS"; // 12 bad argument to system call 48 case SIGPIPE: 49 return "SIGPIPE"; // 13 write on a pipe with no one to read it 50 case SIGALRM: 51 return "SIGALRM"; // 14 alarm clock 52 case SIGTERM: 53 return "SIGTERM"; // 15 software termination signal from kill 54 case SIGURG: 55 return "SIGURG"; // 16 urgent condition on IO channel 56 case SIGSTOP: 57 return "SIGSTOP"; // 17 sendable stop signal not from tty 58 case SIGTSTP: 59 return "SIGTSTP"; // 18 stop signal from tty 60 case SIGCONT: 61 return "SIGCONT"; // 19 continue a stopped process 62 case SIGCHLD: 63 return "SIGCHLD"; // 20 to parent on child stop or exit 64 case SIGTTIN: 65 return "SIGTTIN"; // 21 to readers pgrp upon background tty read 66 case SIGTTOU: 67 return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP) 68 #if !defined(_POSIX_C_SOURCE) 69 case SIGIO: 70 return "SIGIO"; // 23 input/output possible signal 71 #endif 72 case SIGXCPU: 73 return "SIGXCPU"; // 24 exceeded CPU time limit 74 case SIGXFSZ: 75 return "SIGXFSZ"; // 25 exceeded file size limit 76 case SIGVTALRM: 77 return "SIGVTALRM"; // 26 virtual time alarm 78 case SIGPROF: 79 return "SIGPROF"; // 27 profiling time alarm 80 #if !defined(_POSIX_C_SOURCE) 81 case SIGWINCH: 82 return "SIGWINCH"; // 28 window size changes 83 case SIGINFO: 84 return "SIGINFO"; // 29 information request 85 #endif 86 case SIGUSR1: 87 return "SIGUSR1"; // 30 user defined signal 1 88 case SIGUSR2: 89 return "SIGUSR2"; // 31 user defined signal 2 90 default: 91 break; 92 } 93 return NULL; 94 } 95