X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fcommon%2Fsim-signal.c;h=7ddf694c4976b78f0738543815040c9073289f60;hb=3061113bf336048d538241282c39baf684de31bf;hp=77709b17e7a2721ad448fb238a0fd48f4f420f08;hpb=5b64ad42d36e6d487e1f7287d37fbc243a178e72;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/common/sim-signal.c b/sim/common/sim-signal.c index 77709b17e7..7ddf694c49 100644 --- a/sim/common/sim-signal.c +++ b/sim/common/sim-signal.c @@ -1,22 +1,21 @@ /* Simulator signal support - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. Contributed by Cygnus Support This file is part of the GNU Simulators. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +You should have received a copy of the GNU General Public License +along with this program. If not, see . */ #include #include "sim-main.h" @@ -27,7 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., to not think the process has died (so it can be debugged at the point of failure). */ -#ifdef _MSC_VER +#ifdef _WIN32 #ifndef SIGTRAP #define SIGTRAP 5 #endif @@ -77,7 +76,7 @@ sim_signal_to_host (SIM_DESC sd, SIM_SIGNAL sig) break; case SIM_SIGFPE: -#ifdef SIGXCPU +#ifdef SIGFPE return SIGFPE; #endif break; @@ -94,3 +93,42 @@ sim_signal_to_host (SIM_DESC sd, SIM_SIGNAL sig) return 1; #endif } + +enum gdb_signal +sim_signal_to_gdb_signal (SIM_DESC sd, SIM_SIGNAL sig) +{ + switch (sig) + { + case SIM_SIGINT : + return GDB_SIGNAL_INT; + + case SIM_SIGABRT : + return GDB_SIGNAL_ABRT; + + case SIM_SIGILL : + return GDB_SIGNAL_ILL; + + case SIM_SIGTRAP : + return GDB_SIGNAL_TRAP; + + case SIM_SIGBUS : + return GDB_SIGNAL_BUS; + + case SIM_SIGSEGV : + return GDB_SIGNAL_SEGV; + + case SIM_SIGXCPU : + return GDB_SIGNAL_XCPU; + + case SIM_SIGFPE: + return GDB_SIGNAL_FPE; + break; + + case SIM_SIGNONE: + return GDB_SIGNAL_0; + break; + } + + sim_io_eprintf (sd, "sim_signal_to_host: unknown signal: %d\n", sig); + return GDB_SIGNAL_HUP; +}