diff options
author | Mark Kettenis <kettenis@gnu.org> | 2000-02-16 22:26:12 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2000-02-16 22:26:12 +0000 |
commit | e95a43adc3f68b1507edd104f5d37f8dcd3d41ac (patch) | |
tree | 8ec2a33dc164b0551699f75e9342d2f99107508e /gdb/target.c | |
parent | 7433da226541b6160bdf9c8de93ce9f3639d0b85 (diff) | |
download | gdb-e95a43adc3f68b1507edd104f5d37f8dcd3d41ac.zip gdb-e95a43adc3f68b1507edd104f5d37f8dcd3d41ac.tar.gz gdb-e95a43adc3f68b1507edd104f5d37f8dcd3d41ac.tar.bz2 |
2000-02-16 Mark Kettenis <kettenis@gnu.org>
* target.c (do_target_signal_to_host): Do not use REALTIME_LO in
the conversion of the signal number. TARGET_SIGNAL_REALTIME_33 is
33 by definition, whereas REALTIME_LO might be 32 on systems that
have SIG32 such as Linux. Make sure that the signal number
returned is within the range specified by REALTIME_LO and
REALTIME_HI.
Diffstat (limited to 'gdb/target.c')
-rw-r--r-- | gdb/target.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gdb/target.c b/gdb/target.c index 0142aaa..fa9cf88 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -2022,8 +2022,6 @@ do_target_signal_to_host (enum target_signal oursig, return SIGPRIO; #endif - case TARGET_SIGNAL_REALTIME_32: return 32; /* by definition */ - /* Mach exceptions. Assumes that the values for EXC_ are positive! */ #if defined (EXC_BAD_ACCESS) && defined (_NSIG) case TARGET_EXC_BAD_ACCESS: @@ -2060,11 +2058,21 @@ do_target_signal_to_host (enum target_signal oursig, if (oursig >= TARGET_SIGNAL_REALTIME_33 && oursig <= TARGET_SIGNAL_REALTIME_63) { + /* This block of signals is continuous, and + TARGET_SIGNAL_REALTIME_33 is 33 by definition. */ int retsig = - (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + REALTIME_LO; - if (retsig < REALTIME_HI) + (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33; + if (retsig >= REALTIME_LO && retsig < REALTIME_HI) return retsig; } +#if (REALTIME_LO < 33) + else if (oursig == TARGET_SIGNAL_REALTIME_32) + { + /* TARGET_SIGNAL_REALTIME_32 isn't contiguous with + TARGET_SIGNAL_REALTIME_33. It is 32 by definition. */ + return 32; + } +#endif #endif *oursig_ok = 0; return 0; |