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