|
|
|
@ -227,6 +227,149 @@ enum precision_type |
|
|
|
unspecified_precision |
|
|
|
}; |
|
|
|
|
|
|
|
/* The numbering of these signals is chosen to match traditional unix
|
|
|
|
signals (insofar as various unices use the same numbers, anyway). |
|
|
|
It is also the numbering of the GDB remote protocol. Other remote |
|
|
|
protocols, if they use a different numbering, should make sure to |
|
|
|
translate appropriately. |
|
|
|
|
|
|
|
Since these numbers have actually made it out into other software |
|
|
|
(stubs, etc.), you mustn't disturb the assigned numbering. If you |
|
|
|
need to add new signals here, add them to the end of the explicitly |
|
|
|
numbered signals. |
|
|
|
|
|
|
|
This is based strongly on Unix/POSIX signals for several reasons: |
|
|
|
(1) This set of signals represents a widely-accepted attempt to |
|
|
|
represent events of this sort in a portable fashion, (2) we want a |
|
|
|
signal to make it from wait to child_wait to the user intact, (3) many |
|
|
|
remote protocols use a similar encoding. However, it is |
|
|
|
recognized that this set of signals has limitations (such as not |
|
|
|
distinguishing between various kinds of SIGSEGV, or not |
|
|
|
distinguishing hitting a breakpoint from finishing a single step). |
|
|
|
So in the future we may get around this either by adding additional |
|
|
|
signals for breakpoint, single-step, etc., or by adding signal |
|
|
|
codes; the latter seems more in the spirit of what BSD, System V, |
|
|
|
etc. are doing to address these issues. */ |
|
|
|
|
|
|
|
/* For an explanation of what each signal means, see
|
|
|
|
target_signal_to_string. */ |
|
|
|
|
|
|
|
enum target_signal |
|
|
|
{ |
|
|
|
/* Used some places (e.g. stop_signal) to record the concept that
|
|
|
|
there is no signal. */ |
|
|
|
TARGET_SIGNAL_0 = 0, |
|
|
|
TARGET_SIGNAL_FIRST = 0, |
|
|
|
TARGET_SIGNAL_HUP = 1, |
|
|
|
TARGET_SIGNAL_INT = 2, |
|
|
|
TARGET_SIGNAL_QUIT = 3, |
|
|
|
TARGET_SIGNAL_ILL = 4, |
|
|
|
TARGET_SIGNAL_TRAP = 5, |
|
|
|
TARGET_SIGNAL_ABRT = 6, |
|
|
|
TARGET_SIGNAL_EMT = 7, |
|
|
|
TARGET_SIGNAL_FPE = 8, |
|
|
|
TARGET_SIGNAL_KILL = 9, |
|
|
|
TARGET_SIGNAL_BUS = 10, |
|
|
|
TARGET_SIGNAL_SEGV = 11, |
|
|
|
TARGET_SIGNAL_SYS = 12, |
|
|
|
TARGET_SIGNAL_PIPE = 13, |
|
|
|
TARGET_SIGNAL_ALRM = 14, |
|
|
|
TARGET_SIGNAL_TERM = 15, |
|
|
|
TARGET_SIGNAL_URG = 16, |
|
|
|
TARGET_SIGNAL_STOP = 17, |
|
|
|
TARGET_SIGNAL_TSTP = 18, |
|
|
|
TARGET_SIGNAL_CONT = 19, |
|
|
|
TARGET_SIGNAL_CHLD = 20, |
|
|
|
TARGET_SIGNAL_TTIN = 21, |
|
|
|
TARGET_SIGNAL_TTOU = 22, |
|
|
|
TARGET_SIGNAL_IO = 23, |
|
|
|
TARGET_SIGNAL_XCPU = 24, |
|
|
|
TARGET_SIGNAL_XFSZ = 25, |
|
|
|
TARGET_SIGNAL_VTALRM = 26, |
|
|
|
TARGET_SIGNAL_PROF = 27, |
|
|
|
TARGET_SIGNAL_WINCH = 28, |
|
|
|
TARGET_SIGNAL_LOST = 29, |
|
|
|
TARGET_SIGNAL_USR1 = 30, |
|
|
|
TARGET_SIGNAL_USR2 = 31, |
|
|
|
TARGET_SIGNAL_PWR = 32, |
|
|
|
/* Similar to SIGIO. Perhaps they should have the same number. */ |
|
|
|
TARGET_SIGNAL_POLL = 33, |
|
|
|
TARGET_SIGNAL_WIND = 34, |
|
|
|
TARGET_SIGNAL_PHONE = 35, |
|
|
|
TARGET_SIGNAL_WAITING = 36, |
|
|
|
TARGET_SIGNAL_LWP = 37, |
|
|
|
TARGET_SIGNAL_DANGER = 38, |
|
|
|
TARGET_SIGNAL_GRANT = 39, |
|
|
|
TARGET_SIGNAL_RETRACT = 40, |
|
|
|
TARGET_SIGNAL_MSG = 41, |
|
|
|
TARGET_SIGNAL_SOUND = 42, |
|
|
|
TARGET_SIGNAL_SAK = 43, |
|
|
|
TARGET_SIGNAL_PRIO = 44, |
|
|
|
TARGET_SIGNAL_REALTIME_33 = 45, |
|
|
|
TARGET_SIGNAL_REALTIME_34 = 46, |
|
|
|
TARGET_SIGNAL_REALTIME_35 = 47, |
|
|
|
TARGET_SIGNAL_REALTIME_36 = 48, |
|
|
|
TARGET_SIGNAL_REALTIME_37 = 49, |
|
|
|
TARGET_SIGNAL_REALTIME_38 = 50, |
|
|
|
TARGET_SIGNAL_REALTIME_39 = 51, |
|
|
|
TARGET_SIGNAL_REALTIME_40 = 52, |
|
|
|
TARGET_SIGNAL_REALTIME_41 = 53, |
|
|
|
TARGET_SIGNAL_REALTIME_42 = 54, |
|
|
|
TARGET_SIGNAL_REALTIME_43 = 55, |
|
|
|
TARGET_SIGNAL_REALTIME_44 = 56, |
|
|
|
TARGET_SIGNAL_REALTIME_45 = 57, |
|
|
|
TARGET_SIGNAL_REALTIME_46 = 58, |
|
|
|
TARGET_SIGNAL_REALTIME_47 = 59, |
|
|
|
TARGET_SIGNAL_REALTIME_48 = 60, |
|
|
|
TARGET_SIGNAL_REALTIME_49 = 61, |
|
|
|
TARGET_SIGNAL_REALTIME_50 = 62, |
|
|
|
TARGET_SIGNAL_REALTIME_51 = 63, |
|
|
|
TARGET_SIGNAL_REALTIME_52 = 64, |
|
|
|
TARGET_SIGNAL_REALTIME_53 = 65, |
|
|
|
TARGET_SIGNAL_REALTIME_54 = 66, |
|
|
|
TARGET_SIGNAL_REALTIME_55 = 67, |
|
|
|
TARGET_SIGNAL_REALTIME_56 = 68, |
|
|
|
TARGET_SIGNAL_REALTIME_57 = 69, |
|
|
|
TARGET_SIGNAL_REALTIME_58 = 70, |
|
|
|
TARGET_SIGNAL_REALTIME_59 = 71, |
|
|
|
TARGET_SIGNAL_REALTIME_60 = 72, |
|
|
|
TARGET_SIGNAL_REALTIME_61 = 73, |
|
|
|
TARGET_SIGNAL_REALTIME_62 = 74, |
|
|
|
TARGET_SIGNAL_REALTIME_63 = 75, |
|
|
|
|
|
|
|
/* Used internally by Solaris threads. See signal(5) on Solaris. */ |
|
|
|
TARGET_SIGNAL_CANCEL = 76, |
|
|
|
|
|
|
|
/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
|
|
|
|
Linux does, and we can't disturb the numbering, since it's part |
|
|
|
of the protocol. Note that in some GDB's TARGET_SIGNAL_REALTIME_32 |
|
|
|
is number 76. */ |
|
|
|
TARGET_SIGNAL_REALTIME_32, |
|
|
|
/* Yet another pain, IRIX 6 has SIG64. */ |
|
|
|
TARGET_SIGNAL_REALTIME_64, |
|
|
|
|
|
|
|
#if defined(MACH) || defined(__MACH__) |
|
|
|
/* Mach exceptions */ |
|
|
|
TARGET_EXC_BAD_ACCESS, |
|
|
|
TARGET_EXC_BAD_INSTRUCTION, |
|
|
|
TARGET_EXC_ARITHMETIC, |
|
|
|
TARGET_EXC_EMULATION, |
|
|
|
TARGET_EXC_SOFTWARE, |
|
|
|
TARGET_EXC_BREAKPOINT, |
|
|
|
#endif |
|
|
|
TARGET_SIGNAL_INFO, |
|
|
|
|
|
|
|
/* Some signal we don't know about. */ |
|
|
|
TARGET_SIGNAL_UNKNOWN, |
|
|
|
|
|
|
|
/* Use whatever signal we use when one is not specifically specified
|
|
|
|
(for passing to proceed and so on). */ |
|
|
|
TARGET_SIGNAL_DEFAULT, |
|
|
|
|
|
|
|
/* Last and unused enum value, for sizing arrays, etc. */ |
|
|
|
TARGET_SIGNAL_LAST |
|
|
|
}; |
|
|
|
|
|
|
|
/* the cleanup list records things that have to be undone
|
|
|
|
if an error happens (descriptors to be closed, memory to be freed, etc.) |
|
|
|
Each link in the chain records a function to call and an |
|
|
|
|