1 //===-- GDBRemoteSignals.cpp ----------------------------------------------===//
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 #include "GDBRemoteSignals.h"
10 
11 using namespace lldb_private;
12 
GDBRemoteSignals()13 GDBRemoteSignals::GDBRemoteSignals() : UnixSignals() { Reset(); }
14 
GDBRemoteSignals(const lldb::UnixSignalsSP & rhs)15 GDBRemoteSignals::GDBRemoteSignals(const lldb::UnixSignalsSP &rhs)
16     : UnixSignals(*rhs) {}
17 
Reset()18 void GDBRemoteSignals::Reset() {
19   m_signals.clear();
20   // clang-format off
21   //        SIGNO   NAME            SUPPRESS  STOP    NOTIFY  DESCRIPTION
22   //        ======  ==============  ========  ======  ======  ===================================================
23   AddSignal(1,      "SIGHUP",       false,    true,   true,   "hangup");
24   AddSignal(2,      "SIGINT",       true,     true,   true,   "interrupt");
25   AddSignal(3,      "SIGQUIT",      false,    true,   true,   "quit");
26   AddSignal(4,      "SIGILL",       false,    true,   true,   "illegal instruction");
27   AddSignal(5,      "SIGTRAP",      true,     true,   true,   "trace trap (not reset when caught)");
28   AddSignal(6,      "SIGABRT",      false,    true,   true,   "abort()/IOT trap", "SIGIOT");
29   AddSignal(7,      "SIGEMT",       false,    true,   true,   "emulation trap");
30   AddSignal(8,      "SIGFPE",       false,    true,   true,   "floating point exception");
31   AddSignal(9,      "SIGKILL",      false,    true,   true,   "kill");
32   AddSignal(10,     "SIGBUS",       false,    true,   true,   "bus error");
33   AddSignal(11,     "SIGSEGV",      false,    true,   true,   "segmentation violation");
34   AddSignal(12,     "SIGSYS",       false,    true,   true,   "invalid system call");
35   AddSignal(13,     "SIGPIPE",      false,    true,   true,   "write to pipe with reading end closed");
36   AddSignal(14,     "SIGALRM",      false,    false,  false,  "alarm");
37   AddSignal(15,     "SIGTERM",      false,    true,   true,   "termination requested");
38   AddSignal(16,     "SIGURG",       false,    true,   true,   "urgent data on socket");
39   AddSignal(17,     "SIGSTOP",      true,     true,   true,   "process stop");
40   AddSignal(18,     "SIGTSTP",      false,    true,   true,   "tty stop");
41   AddSignal(19,     "SIGCONT",      false,    false,  true,   "process continue");
42   AddSignal(20,     "SIGCHLD",      false,    false,  true,   "child status has changed", "SIGCLD");
43   AddSignal(21,     "SIGTTIN",      false,    true,   true,   "background tty read");
44   AddSignal(22,     "SIGTTOU",      false,    true,   true,   "background tty write");
45   AddSignal(23,     "SIGIO",        false,    true,   true,   "input/output ready/Pollable event");
46   AddSignal(24,     "SIGXCPU",      false,    true,   true,   "CPU resource exceeded");
47   AddSignal(25,     "SIGXFSZ",      false,    true,   true,   "file size limit exceeded");
48   AddSignal(26,     "SIGVTALRM",    false,    true,   true,   "virtual time alarm");
49   AddSignal(27,     "SIGPROF",      false,    false,  false,  "profiling time alarm");
50   AddSignal(28,     "SIGWINCH",     false,    true,   true,   "window size changes");
51   AddSignal(29,     "SIGLOST",      false,    true,   true,   "resource lost");
52   AddSignal(30,     "SIGUSR1",      false,    true,   true,   "user defined signal 1");
53   AddSignal(31,     "SIGUSR2",      false,    true,   true,   "user defined signal 2");
54   AddSignal(32,     "SIGPWR",       false,    true,   true,   "power failure");
55   AddSignal(33,     "SIGPOLL",      false,    true,   true,   "pollable event");
56   AddSignal(34,     "SIGWIND",      false,    true,   true,   "SIGWIND");
57   AddSignal(35,    "SIGPHONE",      false,    true,   true,   "SIGPHONE");
58   AddSignal(36,  "SIGWAITING",      false,    true,   true,   "process's LWPs are blocked");
59   AddSignal(37,      "SIGLWP",      false,    true,   true,   "signal LWP");
60   AddSignal(38,   "SIGDANGER",      false,    true,   true,   "swap space dangerously low");
61   AddSignal(39,    "SIGGRANT",      false,    true,   true,   "monitor mode granted");
62   AddSignal(40,  "SIGRETRACT",      false,    true,   true,   "need to relinquish monitor mode");
63   AddSignal(41,      "SIGMSG",      false,    true,   true,   "monitor mode data available");
64   AddSignal(42,    "SIGSOUND",      false,    true,   true,   "sound completed");
65   AddSignal(43,      "SIGSAK",      false,    true,   true,   "secure attention");
66   AddSignal(44,     "SIGPRIO",      false,    true,   true,   "SIGPRIO");
67 
68   AddSignal(45,       "SIG33",      false,    false,  false,  "real-time event 33");
69   AddSignal(46,       "SIG34",      false,    false,  false,  "real-time event 34");
70   AddSignal(47,       "SIG35",      false,    false,  false,  "real-time event 35");
71   AddSignal(48,       "SIG36",      false,    false,  false,  "real-time event 36");
72   AddSignal(49,       "SIG37",      false,    false,  false,  "real-time event 37");
73   AddSignal(50,       "SIG38",      false,    false,  false,  "real-time event 38");
74   AddSignal(51,       "SIG39",      false,    false,  false,  "real-time event 39");
75   AddSignal(52,       "SIG40",      false,    false,  false,  "real-time event 40");
76   AddSignal(53,       "SIG41",      false,    false,  false,  "real-time event 41");
77   AddSignal(54,       "SIG42",      false,    false,  false,  "real-time event 42");
78   AddSignal(55,       "SIG43",      false,    false,  false,  "real-time event 43");
79   AddSignal(56,       "SIG44",      false,    false,  false,  "real-time event 44");
80   AddSignal(57,       "SIG45",      false,    false,  false,  "real-time event 45");
81   AddSignal(58,       "SIG46",      false,    false,  false,  "real-time event 46");
82   AddSignal(59,       "SIG47",      false,    false,  false,  "real-time event 47");
83   AddSignal(60,       "SIG48",      false,    false,  false,  "real-time event 48");
84   AddSignal(61,       "SIG49",      false,    false,  false,  "real-time event 49");
85   AddSignal(62,       "SIG50",      false,    false,  false,  "real-time event 50");
86   AddSignal(63,       "SIG51",      false,    false,  false,  "real-time event 51");
87   AddSignal(64,       "SIG52",      false,    false,  false,  "real-time event 52");
88   AddSignal(65,       "SIG53",      false,    false,  false,  "real-time event 53");
89   AddSignal(66,       "SIG54",      false,    false,  false,  "real-time event 54");
90   AddSignal(67,       "SIG55",      false,    false,  false,  "real-time event 55");
91   AddSignal(68,       "SIG56",      false,    false,  false,  "real-time event 56");
92   AddSignal(69,       "SIG57",      false,    false,  false,  "real-time event 57");
93   AddSignal(70,       "SIG58",      false,    false,  false,  "real-time event 58");
94   AddSignal(71,       "SIG59",      false,    false,  false,  "real-time event 59");
95   AddSignal(72,       "SIG60",      false,    false,  false,  "real-time event 60");
96   AddSignal(73,       "SIG61",      false,    false,  false,  "real-time event 61");
97   AddSignal(74,       "SIG62",      false,    false,  false,  "real-time event 62");
98   AddSignal(75,       "SIG63",      false,    false,  false,  "real-time event 63");
99 
100   AddSignal(76,   "SIGCANCEL",      false,    true,   true,   "LWP internal signal");
101 
102   AddSignal(77,       "SIG32",      false,    false,  false,  "real-time event 32");
103   AddSignal(78,       "SIG64",      false,    false,  false,  "real-time event 64");
104   AddSignal(79,       "SIG65",      false,    false,  false,  "real-time event 65");
105   AddSignal(80,       "SIG66",      false,    false,  false,  "real-time event 66");
106   AddSignal(81,       "SIG67",      false,    false,  false,  "real-time event 67");
107   AddSignal(82,       "SIG68",      false,    false,  false,  "real-time event 68");
108   AddSignal(83,       "SIG69",      false,    false,  false,  "real-time event 69");
109   AddSignal(84,       "SIG70",      false,    false,  false,  "real-time event 70");
110   AddSignal(85,       "SIG71",      false,    false,  false,  "real-time event 71");
111   AddSignal(86,       "SIG72",      false,    false,  false,  "real-time event 72");
112   AddSignal(87,       "SIG73",      false,    false,  false,  "real-time event 73");
113   AddSignal(88,       "SIG74",      false,    false,  false,  "real-time event 74");
114   AddSignal(89,       "SIG75",      false,    false,  false,  "real-time event 75");
115   AddSignal(90,       "SIG76",      false,    false,  false,  "real-time event 76");
116   AddSignal(91,       "SIG77",      false,    false,  false,  "real-time event 77");
117   AddSignal(92,       "SIG78",      false,    false,  false,  "real-time event 78");
118   AddSignal(93,       "SIG79",      false,    false,  false,  "real-time event 79");
119   AddSignal(94,       "SIG80",      false,    false,  false,  "real-time event 80");
120   AddSignal(95,       "SIG81",      false,    false,  false,  "real-time event 81");
121   AddSignal(96,       "SIG82",      false,    false,  false,  "real-time event 82");
122   AddSignal(97,       "SIG83",      false,    false,  false,  "real-time event 83");
123   AddSignal(98,       "SIG84",      false,    false,  false,  "real-time event 84");
124   AddSignal(99,       "SIG85",      false,    false,  false,  "real-time event 85");
125   AddSignal(100,      "SIG86",      false,    false,  false,  "real-time event 86");
126   AddSignal(101,      "SIG87",      false,    false,  false,  "real-time event 87");
127   AddSignal(102,      "SIG88",      false,    false,  false,  "real-time event 88");
128   AddSignal(103,      "SIG89",      false,    false,  false,  "real-time event 89");
129   AddSignal(104,      "SIG90",      false,    false,  false,  "real-time event 90");
130   AddSignal(105,      "SIG91",      false,    false,  false,  "real-time event 91");
131   AddSignal(106,      "SIG92",      false,    false,  false,  "real-time event 92");
132   AddSignal(107,      "SIG93",      false,    false,  false,  "real-time event 93");
133   AddSignal(108,      "SIG94",      false,    false,  false,  "real-time event 94");
134   AddSignal(109,      "SIG95",      false,    false,  false,  "real-time event 95");
135   AddSignal(110,      "SIG96",      false,    false,  false,  "real-time event 96");
136   AddSignal(111,      "SIG97",      false,    false,  false,  "real-time event 97");
137   AddSignal(112,      "SIG98",      false,    false,  false,  "real-time event 98");
138   AddSignal(113,      "SIG99",      false,    false,  false,  "real-time event 99");
139   AddSignal(114,     "SIG100",      false,    false,  false,  "real-time event 100");
140   AddSignal(115,     "SIG101",      false,    false,  false,  "real-time event 101");
141   AddSignal(116,     "SIG102",      false,    false,  false,  "real-time event 102");
142   AddSignal(117,     "SIG103",      false,    false,  false,  "real-time event 103");
143   AddSignal(118,     "SIG104",      false,    false,  false,  "real-time event 104");
144   AddSignal(119,     "SIG105",      false,    false,  false,  "real-time event 105");
145   AddSignal(120,     "SIG106",      false,    false,  false,  "real-time event 106");
146   AddSignal(121,     "SIG107",      false,    false,  false,  "real-time event 107");
147   AddSignal(122,     "SIG108",      false,    false,  false,  "real-time event 108");
148   AddSignal(123,     "SIG109",      false,    false,  false,  "real-time event 109");
149   AddSignal(124,     "SIG110",      false,    false,  false,  "real-time event 110");
150   AddSignal(125,     "SIG111",      false,    false,  false,  "real-time event 111");
151   AddSignal(126,     "SIG112",      false,    false,  false,  "real-time event 112");
152   AddSignal(127,     "SIG113",      false,    false,  false,  "real-time event 113");
153   AddSignal(128,     "SIG114",      false,    false,  false,  "real-time event 114");
154   AddSignal(129,     "SIG115",      false,    false,  false,  "real-time event 115");
155   AddSignal(130,     "SIG116",      false,    false,  false,  "real-time event 116");
156   AddSignal(131,     "SIG117",      false,    false,  false,  "real-time event 117");
157   AddSignal(132,     "SIG118",      false,    false,  false,  "real-time event 118");
158   AddSignal(133,     "SIG119",      false,    false,  false,  "real-time event 119");
159   AddSignal(134,     "SIG120",      false,    false,  false,  "real-time event 120");
160   AddSignal(135,     "SIG121",      false,    false,  false,  "real-time event 121");
161   AddSignal(136,     "SIG122",      false,    false,  false,  "real-time event 122");
162   AddSignal(137,     "SIG123",      false,    false,  false,  "real-time event 123");
163   AddSignal(138,     "SIG124",      false,    false,  false,  "real-time event 124");
164   AddSignal(139,     "SIG125",      false,    false,  false,  "real-time event 125");
165   AddSignal(140,     "SIG126",      false,    false,  false,  "real-time event 126");
166   AddSignal(141,     "SIG127",      false,    false,  false,  "real-time event 127");
167 
168   AddSignal(142,    "SIGINFO",      false,    true,   true,   "information request");
169   AddSignal(143,    "unknown",      false,    true,   true,   "unknown signal");
170 
171   AddSignal(145,      "EXC_BAD_ACCESS",       false,  true,   true,   "could not access memory");
172   AddSignal(146, "EXC_BAD_INSTRUCTION",       false,  true,   true,   "illegal instruction/operand");
173   AddSignal(147,      "EXC_ARITHMETIC",       false,  true,   true,   "arithmetic exception");
174   AddSignal(148,       "EXC_EMULATION",       false,  true,   true,   "emulation instruction");
175   AddSignal(149,        "EXC_SOFTWARE",       false,  true,   true,   "software generated exception");
176   AddSignal(150,      "EXC_BREAKPOINT",       false,  true,   true,   "breakpoint");
177 
178   AddSignal(151,   "SIGLIBRT",      false,    true,   true,   "librt internal signal");
179 
180   // clang-format on
181 }
182