From: David Edelsohn Date: Sat, 23 Oct 1993 21:56:47 +0000 (+0000) Subject: * remote-sim.h (sim_stop): New enum. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=592f517aa397bea48d2e47cae2c0d29f94dfc7d1;p=binutils-gdb.git * remote-sim.h (sim_stop): New enum. (sim_stop_signal): Change prototype, result is enum sim_stop. * remote-sim.c (gdbsim_wait): Update call to sim_stop_signal. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 94cc9a26a0d..442f2ce36fa 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Sat Oct 23 14:48:18 1993 Doug Evans (dje@canuck.cygnus.com) + + * remote-sim.h (sim_stop): New enum. + (sim_stop_signal): Change prototype, result is enum sim_stop. + * remote-sim.c (gdbsim_wait): Update call to sim_stop_signal. + Fri Oct 22 07:49:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) * stabsread.c (define_symbol): Skip the whole thing about "pcc diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index dbecaa00f36..0c9308203d8 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -349,9 +349,14 @@ gdbsim_wait (pid, status) int pid; WAITTYPE *status; { + int sigrc; + if (sr_get_debug ()) printf_filtered ("gdbsim_wait: "); - WSETSTOP (*status, sim_stop_signal ()); + if (sim_stop_signal (&sigrc) == sim_exited) + WSETEXIT (*status, sigrc); + else + WSETSTOP (*status, sigrc); if (sr_get_debug ()) printf_filtered ("status %d\n", *status); return inferior_pid; diff --git a/gdb/remote-sim.h b/gdb/remote-sim.h index bdad3fd5ba3..293be34905f 100644 --- a/gdb/remote-sim.h +++ b/gdb/remote-sim.h @@ -63,11 +63,13 @@ int sim_store_register PARAMS ((int regno, char *buf)); int sim_kill PARAMS ((void)); -/* Read LENGTH bytes of the simulated program's memory and store in BUF. */ +/* Read LENGTH bytes of the simulated program's memory and store in BUF. + Result is number of bytes read, or zero if error. */ int sim_read PARAMS ((CORE_ADDR mem, char *buf, int length)); -/* Store LENGTH bytes from BUF in the simulated program's memory. */ +/* Store LENGTH bytes from BUF in the simulated program's memory. + Result is number of bytes write, or zero if error. */ int sim_write PARAMS ((CORE_ADDR mem, char *buf, int length)); @@ -79,9 +81,12 @@ int sim_info PARAMS ((void)); int sim_set_pc PARAMS ((CORE_ADDR pc)); -/* Fetch why the program stopped. */ +/* Fetch why the program stopped. + SIGRC will contain either the argument to exit() or the signal number. */ -int sim_stop_signal PARAMS ((void)); +enum sim_stop { sim_exited, sim_stopped, sim_signalled }; + +enum sim_stop sim_stop_signal PARAMS ((int *sigrc)); /* Run (or resume) the program. */