From 0387eeea5b1bd190f27e85448b9a8a93e2bd438a Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Wed, 24 Jul 2013 16:20:11 +0000 Subject: gdb/ * Makefile.in (SFILES): Add common/target-common.c. Add common/target-common.h to headers. (COMMON_OBS): Add target-common.o. (target-common.o): New target. * linux-nat.h (resume_kind): Move to common/target-common.h. * target.c (target_waitstatus_to_string): Move to common/target-common.c. * target.h: Include target-common.h. (target_waitkind): Move to common/target-common.h. (target_waitstatus): Likewise. (TARGET_WNOHANG): Likewise. * common/target-common.c: New file. * common/target-common.h: New file. gdb/gdbserver/ * Makefile.in (SFILES): /common/target-common.c. (OBS): Add target-common.o. (server_h): Add $(srcdir)/../common/target-common.h. (target-common.o): New target. * server.c (queue_stop_reply_callback): Free status string after use. * target.c (target_waitstatus_to_string): Remove. * target.h: Include target-common.h. (resume_kind): Likewise. (target_waitkind): Likewise. (target_waitstatus): Likewise. (TARGET_WNOHANG): Likewise. --- gdb/gdbserver/ChangeLog | 15 +++++++++++ gdb/gdbserver/Makefile.in | 18 +++++++------ gdb/gdbserver/server.c | 15 ++++++++--- gdb/gdbserver/target.c | 42 ----------------------------- gdb/gdbserver/target.h | 69 ++--------------------------------------------- 5 files changed, 38 insertions(+), 121 deletions(-) (limited to 'gdb/gdbserver') diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 3d963ead3c8..4af17efdfbe 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,18 @@ +2013-07-24 Luis Machado + + * Makefile.in (SFILES): /common/target-common.c. + (OBS): Add target-common.o. + (server_h): Add $(srcdir)/../common/target-common.h. + (target-common.o): New target. + * server.c (queue_stop_reply_callback): Free + status string after use. + * target.c (target_waitstatus_to_string): Remove. + * target.h: Include target-common.h. + (resume_kind): Likewise. + (target_waitkind): Likewise. + (target_waitstatus): Likewise. + (TARGET_WNOHANG): Likewise. + 2013-07-04 Yao Qi * Makefile.in (host_alias): Use @host_noncanonical@. diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 2cbf20807f5..b28f743209d 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -157,7 +157,7 @@ SFILES= $(srcdir)/gdbreplay.c $(srcdir)/inferiors.c $(srcdir)/dll.c \ $(srcdir)/common/common-utils.c $(srcdir)/common/xml-utils.c \ $(srcdir)/common/linux-osdata.c $(srcdir)/common/ptid.c \ $(srcdir)/common/buffer.c $(srcdir)/common/linux-btrace.c \ - $(srcdir)/common/filestuff.c + $(srcdir)/common/filestuff.c $(srcdir)/common/target-common.c DEPFILES = @GDBSERVER_DEPFILES@ @@ -166,13 +166,11 @@ LIBOBJS = @LIBOBJS@ SOURCES = $(SFILES) TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS} -OBS = agent.o ax.o inferiors.o regcache.o remote-utils.o server.o signals.o target.o \ - utils.o version.o vec.o gdb_vecs.o \ - mem-break.o hostio.o event-loop.o tracepoint.o \ - xml-utils.o common-utils.o ptid.o buffer.o format.o filestuff.o \ - dll.o notif.o tdesc.o \ - $(XML_BUILTIN) \ - $(DEPFILES) $(LIBOBJS) +OBS = agent.o ax.o inferiors.o regcache.o remote-utils.o server.o signals.o \ + target.o target-common.o utils.o version.o vec.o gdb_vecs.o \ + mem-break.o hostio.o event-loop.o tracepoint.o xml-utils.o \ + common-utils.o ptid.o buffer.o format.o filestuff.o dll.o notif.o \ + tdesc.o $(XML_BUILTIN) $(DEPFILES) $(LIBOBJS) GDBREPLAY_OBS = gdbreplay.o version.o GDBSERVER_LIBS = @GDBSERVER_LIBS@ XM_CLIBS = @LIBS@ @@ -438,6 +436,7 @@ server_h = $(srcdir)/server.h $(regcache_h) $(srcdir)/target.h \ $(srcdir)/../common/buffer.h \ $(srcdir)/../common/gdb_assert.h \ $(srcdir)/../common/gdb_locale.h \ + $(srcdir)/../common/target-common.h \ $(ptid_h) \ $(signals_h) \ $(libiberty_h) \ @@ -548,6 +547,9 @@ filestuff.o: ../common/filestuff.c agent.o: ../common/agent.c $(COMPILE) $< $(POSTCOMPILE) +target-common.o: ../common/target-common.c + $(COMPILE) $< + $(POSTCOMPILE) linux-btrace.o: ../common/linux-btrace.c $(linux_btrace_h) $(server_h) $(CC) -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $< diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index a172c98f6f1..a4b9129bbfd 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -2470,10 +2470,17 @@ queue_stop_reply_callback (struct inferior_list_entry *entry, void *arg) if (thread_stopped (thread)) { if (debug_threads) - fprintf (stderr, - "Reporting thread %s as already stopped with %s\n", - target_pid_to_str (entry->id), - target_waitstatus_to_string (&thread->last_status)); + { + char *status_string + = target_waitstatus_to_string (&thread->last_status); + + fprintf (stderr, + "Reporting thread %s as already stopped with %s\n", + target_pid_to_str (entry->id), + status_string); + + xfree (status_string); + } gdb_assert (thread->last_status.kind != TARGET_WAITKIND_IGNORE); diff --git a/gdb/gdbserver/target.c b/gdb/gdbserver/target.c index 3a28099855d..a47053c78fa 100644 --- a/gdb/gdbserver/target.c +++ b/gdb/gdbserver/target.c @@ -140,48 +140,6 @@ target_pid_to_str (ptid_t ptid) return buf; } -/* Return a pretty printed form of target_waitstatus. */ - -const char * -target_waitstatus_to_string (const struct target_waitstatus *ws) -{ - static char buf[200]; - const char *kind_str = "status->kind = "; - - switch (ws->kind) - { - case TARGET_WAITKIND_EXITED: - sprintf (buf, "%sexited, status = %d", - kind_str, ws->value.integer); - break; - case TARGET_WAITKIND_STOPPED: - sprintf (buf, "%sstopped, signal = %s", - kind_str, gdb_signal_to_name (ws->value.sig)); - break; - case TARGET_WAITKIND_SIGNALLED: - sprintf (buf, "%ssignalled, signal = %s", - kind_str, gdb_signal_to_name (ws->value.sig)); - break; - case TARGET_WAITKIND_LOADED: - sprintf (buf, "%sloaded", kind_str); - break; - case TARGET_WAITKIND_EXECD: - sprintf (buf, "%sexecd", kind_str); - break; - case TARGET_WAITKIND_SPURIOUS: - sprintf (buf, "%sspurious", kind_str); - break; - case TARGET_WAITKIND_IGNORE: - sprintf (buf, "%signore", kind_str); - break; - default: - sprintf (buf, "%sunknown???", kind_str); - break; - } - - return buf; -} - int kill_inferior (int pid) { diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index c57cb40deb2..d064b79ab5a 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -21,24 +21,12 @@ #ifndef TARGET_H #define TARGET_H +#include "target-common.h" + struct emit_ops; struct btrace_target_info; struct buffer; -/* Ways to "resume" a thread. */ - -enum resume_kind -{ - /* Thread should continue. */ - resume_continue, - - /* Thread should single-step. */ - resume_step, - - /* Thread should be stopped. */ - resume_stop -}; - /* This structure describes how to resume a particular thread (or all threads) based on the client's request. If thread is -1, then this entry applies to all threads. These are passed around as an @@ -68,57 +56,6 @@ struct thread_resume CORE_ADDR step_range_end; /* Exclusive */ }; -/* Generally, what has the program done? */ -enum target_waitkind - { - /* The program has exited. The exit status is in - value.integer. */ - TARGET_WAITKIND_EXITED, - - /* The program has stopped with a signal. Which signal is in - value.sig. */ - TARGET_WAITKIND_STOPPED, - - /* The program has terminated with a signal. Which signal is in - value.sig. */ - TARGET_WAITKIND_SIGNALLED, - - /* The program is letting us know that it dynamically loaded - something. */ - TARGET_WAITKIND_LOADED, - - /* The program has exec'ed a new executable file. The new file's - pathname is pointed to by value.execd_pathname. */ - TARGET_WAITKIND_EXECD, - - /* Nothing of interest to GDB happened, but we stopped anyway. */ - TARGET_WAITKIND_SPURIOUS, - - /* An event has occurred, but we should wait again. In this case, - we want to go back to the event loop and wait there for another - event from the inferior. */ - TARGET_WAITKIND_IGNORE - }; - -struct target_waitstatus - { - enum target_waitkind kind; - - /* Forked child pid, execd pathname, exit status or signal number. */ - union - { - int integer; - enum gdb_signal sig; - ptid_t related_pid; - char *execd_pathname; - } - value; - }; - -/* Options that can be passed to target_ops->wait. */ - -#define TARGET_WNOHANG 1 - struct target_ops { /* Start a new process. @@ -596,6 +533,4 @@ void set_desired_inferior (int id); const char *target_pid_to_str (ptid_t); -const char *target_waitstatus_to_string (const struct target_waitstatus *); - #endif /* TARGET_H */ -- cgit v1.2.1