15ffd83dbSDimitry Andric //===-- LinuxSignals.cpp --------------------------------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric
90b57cec5SDimitry Andric #include "LinuxSignals.h"
100b57cec5SDimitry Andric
110b57cec5SDimitry Andric using namespace lldb_private;
120b57cec5SDimitry Andric
LinuxSignals()130b57cec5SDimitry Andric LinuxSignals::LinuxSignals() : UnixSignals() { Reset(); }
140b57cec5SDimitry Andric
Reset()150b57cec5SDimitry Andric void LinuxSignals::Reset() {
160b57cec5SDimitry Andric m_signals.clear();
17*af732203SDimitry Andric // clang-format off
18*af732203SDimitry Andric // SIGNO NAME SUPPRESS STOP NOTIFY DESCRIPTION
19*af732203SDimitry Andric // ====== ============== ======== ====== ====== ===================================================
200b57cec5SDimitry Andric AddSignal(1, "SIGHUP", false, true, true, "hangup");
210b57cec5SDimitry Andric AddSignal(2, "SIGINT", true, true, true, "interrupt");
220b57cec5SDimitry Andric AddSignal(3, "SIGQUIT", false, true, true, "quit");
230b57cec5SDimitry Andric AddSignal(4, "SIGILL", false, true, true, "illegal instruction");
24*af732203SDimitry Andric AddSignal(5, "SIGTRAP", true, true, true, "trace trap (not reset when caught)");
250b57cec5SDimitry Andric AddSignal(6, "SIGABRT", false, true, true, "abort()/IOT trap", "SIGIOT");
260b57cec5SDimitry Andric AddSignal(7, "SIGBUS", false, true, true, "bus error");
270b57cec5SDimitry Andric AddSignal(8, "SIGFPE", false, true, true, "floating point exception");
280b57cec5SDimitry Andric AddSignal(9, "SIGKILL", false, true, true, "kill");
290b57cec5SDimitry Andric AddSignal(10, "SIGUSR1", false, true, true, "user defined signal 1");
300b57cec5SDimitry Andric AddSignal(11, "SIGSEGV", false, true, true, "segmentation violation");
310b57cec5SDimitry Andric AddSignal(12, "SIGUSR2", false, true, true, "user defined signal 2");
32*af732203SDimitry Andric AddSignal(13, "SIGPIPE", false, true, true, "write to pipe with reading end closed");
330b57cec5SDimitry Andric AddSignal(14, "SIGALRM", false, false, false, "alarm");
340b57cec5SDimitry Andric AddSignal(15, "SIGTERM", false, true, true, "termination requested");
350b57cec5SDimitry Andric AddSignal(16, "SIGSTKFLT", false, true, true, "stack fault");
36*af732203SDimitry Andric AddSignal(17, "SIGCHLD", false, false, true, "child status has changed", "SIGCLD");
37*af732203SDimitry Andric AddSignal(18, "SIGCONT", false, false, true, "process continue");
380b57cec5SDimitry Andric AddSignal(19, "SIGSTOP", true, true, true, "process stop");
390b57cec5SDimitry Andric AddSignal(20, "SIGTSTP", false, true, true, "tty stop");
400b57cec5SDimitry Andric AddSignal(21, "SIGTTIN", false, true, true, "background tty read");
410b57cec5SDimitry Andric AddSignal(22, "SIGTTOU", false, true, true, "background tty write");
420b57cec5SDimitry Andric AddSignal(23, "SIGURG", false, true, true, "urgent data on socket");
430b57cec5SDimitry Andric AddSignal(24, "SIGXCPU", false, true, true, "CPU resource exceeded");
440b57cec5SDimitry Andric AddSignal(25, "SIGXFSZ", false, true, true, "file size limit exceeded");
450b57cec5SDimitry Andric AddSignal(26, "SIGVTALRM", false, true, true, "virtual time alarm");
460b57cec5SDimitry Andric AddSignal(27, "SIGPROF", false, false, false, "profiling time alarm");
470b57cec5SDimitry Andric AddSignal(28, "SIGWINCH", false, true, true, "window size changes");
48*af732203SDimitry Andric AddSignal(29, "SIGIO", false, true, true, "input/output ready/Pollable event", "SIGPOLL");
490b57cec5SDimitry Andric AddSignal(30, "SIGPWR", false, true, true, "power failure");
500b57cec5SDimitry Andric AddSignal(31, "SIGSYS", false, true, true, "invalid system call");
51*af732203SDimitry Andric AddSignal(32, "SIG32", false, false, false, "threading library internal signal 1");
52*af732203SDimitry Andric AddSignal(33, "SIG33", false, false, false, "threading library internal signal 2");
530b57cec5SDimitry Andric AddSignal(34, "SIGRTMIN", false, false, false, "real time signal 0");
540b57cec5SDimitry Andric AddSignal(35, "SIGRTMIN+1", false, false, false, "real time signal 1");
550b57cec5SDimitry Andric AddSignal(36, "SIGRTMIN+2", false, false, false, "real time signal 2");
560b57cec5SDimitry Andric AddSignal(37, "SIGRTMIN+3", false, false, false, "real time signal 3");
570b57cec5SDimitry Andric AddSignal(38, "SIGRTMIN+4", false, false, false, "real time signal 4");
580b57cec5SDimitry Andric AddSignal(39, "SIGRTMIN+5", false, false, false, "real time signal 5");
590b57cec5SDimitry Andric AddSignal(40, "SIGRTMIN+6", false, false, false, "real time signal 6");
600b57cec5SDimitry Andric AddSignal(41, "SIGRTMIN+7", false, false, false, "real time signal 7");
610b57cec5SDimitry Andric AddSignal(42, "SIGRTMIN+8", false, false, false, "real time signal 8");
620b57cec5SDimitry Andric AddSignal(43, "SIGRTMIN+9", false, false, false, "real time signal 9");
630b57cec5SDimitry Andric AddSignal(44, "SIGRTMIN+10", false, false, false, "real time signal 10");
640b57cec5SDimitry Andric AddSignal(45, "SIGRTMIN+11", false, false, false, "real time signal 11");
650b57cec5SDimitry Andric AddSignal(46, "SIGRTMIN+12", false, false, false, "real time signal 12");
660b57cec5SDimitry Andric AddSignal(47, "SIGRTMIN+13", false, false, false, "real time signal 13");
670b57cec5SDimitry Andric AddSignal(48, "SIGRTMIN+14", false, false, false, "real time signal 14");
680b57cec5SDimitry Andric AddSignal(49, "SIGRTMIN+15", false, false, false, "real time signal 15");
69*af732203SDimitry Andric AddSignal(50, "SIGRTMAX-14", false, false, false, "real time signal 16"); // switching to SIGRTMAX-xxx to match "kill -l" output
700b57cec5SDimitry Andric AddSignal(51, "SIGRTMAX-13", false, false, false, "real time signal 17");
710b57cec5SDimitry Andric AddSignal(52, "SIGRTMAX-12", false, false, false, "real time signal 18");
720b57cec5SDimitry Andric AddSignal(53, "SIGRTMAX-11", false, false, false, "real time signal 19");
730b57cec5SDimitry Andric AddSignal(54, "SIGRTMAX-10", false, false, false, "real time signal 20");
740b57cec5SDimitry Andric AddSignal(55, "SIGRTMAX-9", false, false, false, "real time signal 21");
750b57cec5SDimitry Andric AddSignal(56, "SIGRTMAX-8", false, false, false, "real time signal 22");
760b57cec5SDimitry Andric AddSignal(57, "SIGRTMAX-7", false, false, false, "real time signal 23");
770b57cec5SDimitry Andric AddSignal(58, "SIGRTMAX-6", false, false, false, "real time signal 24");
780b57cec5SDimitry Andric AddSignal(59, "SIGRTMAX-5", false, false, false, "real time signal 25");
790b57cec5SDimitry Andric AddSignal(60, "SIGRTMAX-4", false, false, false, "real time signal 26");
800b57cec5SDimitry Andric AddSignal(61, "SIGRTMAX-3", false, false, false, "real time signal 27");
810b57cec5SDimitry Andric AddSignal(62, "SIGRTMAX-2", false, false, false, "real time signal 28");
820b57cec5SDimitry Andric AddSignal(63, "SIGRTMAX-1", false, false, false, "real time signal 29");
830b57cec5SDimitry Andric AddSignal(64, "SIGRTMAX", false, false, false, "real time signal 30");
84*af732203SDimitry Andric // clang-format on
850b57cec5SDimitry Andric }
86