GDB exit status for semihosting

Report exit status to GDB when a semihosted application exits.

Signed-off-by: Paul Brook <paul@codesourcery.com>
This commit is contained in:
Paul Brook 2010-06-16 13:03:51 +01:00
parent 1884533c74
commit 0e1c9c54af
4 changed files with 23 additions and 15 deletions

View file

@ -2373,6 +2373,26 @@ static void gdb_read_byte(GDBState *s, int ch)
}
}
/* Tell the remote gdb that the process has exited. */
void gdb_exit(CPUState *env, int code)
{
GDBState *s;
char buf[4];
s = gdbserver_state;
if (!s) {
return;
}
#ifdef CONFIG_USER_ONLY
if (gdbserver_fd < 0 || s->fd < 0) {
return;
}
#endif
snprintf(buf, sizeof(buf), "W%02x", (uint8_t)code);
put_packet(s, buf);
}
#ifdef CONFIG_USER_ONLY
int
gdb_queuesig (void)
@ -2436,20 +2456,6 @@ gdb_handlesig (CPUState *env, int sig)
return sig;
}
/* Tell the remote gdb that the process has exited. */
void gdb_exit(CPUState *env, int code)
{
GDBState *s;
char buf[4];
s = gdbserver_state;
if (gdbserver_fd < 0 || s->fd < 0)
return;
snprintf(buf, sizeof(buf), "W%02x", code);
put_packet(s, buf);
}
/* Tell the remote gdb that the process has exited due to SIG. */
void gdb_signalled(CPUState *env, int sig)
{