diff options
author | Luis Machado <luisgpm@br.ibm.com> | 2013-07-24 16:20:12 +0000 |
---|---|---|
committer | Luis Machado <luisgpm@br.ibm.com> | 2013-07-24 16:20:12 +0000 |
commit | 3360c0bf75c98188a29b2ea29183a0bdc33b5801 (patch) | |
tree | 0a1144597538d9f9a1b9c4fca782944bbb8c7128 /gdb/gdbserver | |
parent | 7e8b059be6b6b97b611b034e90f576c1479bdf75 (diff) | |
download | gdb-3360c0bf75c98188a29b2ea29183a0bdc33b5801.zip gdb-3360c0bf75c98188a29b2ea29183a0bdc33b5801.tar.gz gdb-3360c0bf75c98188a29b2ea29183a0bdc33b5801.tar.bz2 |
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.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 15 | ||||
-rw-r--r-- | gdb/gdbserver/Makefile.in | 18 | ||||
-rw-r--r-- | gdb/gdbserver/server.c | 15 | ||||
-rw-r--r-- | gdb/gdbserver/target.c | 42 | ||||
-rw-r--r-- | gdb/gdbserver/target.h | 69 |
5 files changed, 38 insertions, 121 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 3d963ea..4af17ef 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,18 @@ +2013-07-24 Luis Machado <lgustavo@codesourcery.com> + + * 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 <yao@codesourcery.com> * Makefile.in (host_alias): Use @host_noncanonical@. diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 2cbf208..b28f743 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 a172c98..a4b9129 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 3a28099..a47053c 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 c57cb40..d064b79 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 */ |