gdb/
authorLuis Machado <luisgpm@br.ibm.com>
Mon, 19 Aug 2013 16:54:11 +0000 (16:54 +0000)
committerLuis Machado <luisgpm@br.ibm.com>
Mon, 19 Aug 2013 16:54:11 +0000 (16:54 +0000)
* Makefile.in (SFILES): Remove common/target-common.c and
add target/waitstatus.c.
(HFILES_NO_SRCDIR): Remove common/target-common.h and add
target/resume.h, target/wait.h and target/waitstatus.h.
(COMMON_OBS): Remove target-common.o and add
waitstatus.o.
(target-common.o): Remove.
(waitstatus.o): New target object file.
* common/target-common.c: Move contents to
target/waitstatus.c and remove.
* common/target-common.h: Move contents to other files and
remove.
(enum resume_kind: Move to target/resume.h.
(TARGET_WNOHANG): Move to target/wait.h.
(enum target_waitkind): Move to target/waitstatus.h.
(struct target_waitstatus): Likewise.
* target.h: Do not include target-common.h and
include target/resume.h, target/wait.h and
target/waitstatus.h.
* target/resume.h: New file.
* target/wait.h: New file.
* target/waitstatus.h: New file.
* target/waitstatus.c: New file.

gdb/gdbserver/
* Makefile.in (INCLUDE_CFLAGS): Include -I$(srcdir)/../.
(SFILES): Remove $(srcdir)/common/target-common.c and
add $(srcdir)/target/waitstatus.c.
(OBS): Remove target-common.o and add waitstatus.o.
(server_h): Remove $(srcdir)/../common/target-common.h and
add $(srcdir)/../target/resume.h, $(srcdir)/../target/wait.h
and $(srcdir)/../target/waitstatus.h.
(target-common.o): Remove.
(waitstatus.o): New target object file.
* target.h: Do not include target-common.h and
include target/resume.h, target/wait.h and
target/waitstatus.h.

12 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/common/target-common.c [deleted file]
gdb/common/target-common.h [deleted file]
gdb/gdbserver/ChangeLog
gdb/gdbserver/Makefile.in
gdb/gdbserver/target.h
gdb/target.h
gdb/target/resume.h [new file with mode: 0644]
gdb/target/wait.h [new file with mode: 0644]
gdb/target/waitstatus.c [new file with mode: 0644]
gdb/target/waitstatus.h [new file with mode: 0644]

index ef51a9f92383eff5a5aeed17df8eb596bc1eec6d..06e25dafb7df6a8fa08b5b29484fe958945c681a 100644 (file)
@@ -1,3 +1,29 @@
+2013-08-19  Luis Machado  <lgustavo@codesourcery.com>
+    
+       * Makefile.in (SFILES): Remove common/target-common.c and
+       add target/waitstatus.c.
+       (HFILES_NO_SRCDIR): Remove common/target-common.h and add
+       target/resume.h, target/wait.h and target/waitstatus.h.
+       (COMMON_OBS): Remove target-common.o and add
+       waitstatus.o.
+       (target-common.o): Remove.
+       (waitstatus.o): New target object file.
+       * common/target-common.c: Move contents to
+       target/waitstatus.c and remove.
+       * common/target-common.h: Move contents to other files and
+       remove.
+       (enum resume_kind: Move to target/resume.h.
+       (TARGET_WNOHANG): Move to target/wait.h.
+       (enum target_waitkind): Move to target/waitstatus.h.
+       (struct target_waitstatus): Likewise.
+       * target.h: Do not include target-common.h and
+       include target/resume.h, target/wait.h and
+       target/waitstatus.h.
+       * target/resume.h: New file.
+       * target/wait.h: New file.
+       * target/waitstatus.h: New file.
+       * target/waitstatus.c: New file.
+
 2013-08-19  Pedro Alves  <palves@redhat.com>
 
        * linux-nat.c (linux_test_for_tracefork)
index 917194007ec7dfc259a59196d64ecdd6bf2b0ba1..45cddafa3c40c28aa8012889ce35adb3ab0eb86e 100644 (file)
@@ -775,7 +775,7 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
        common/gdb_vecs.c common/common-utils.c common/xml-utils.c \
        common/ptid.c common/buffer.c gdb-dlfcn.c common/agent.c \
        common/format.c common/filestuff.c btrace.c record-btrace.c ctf.c \
-       common/target-common.c
+       target/waitstatus.c
 
 LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c
 
@@ -854,7 +854,8 @@ common/common-utils.h common/xml-utils.h common/buffer.h common/ptid.h \
 common/format.h common/host-defs.h utils.h common/queue.h common/gdb_string.h \
 common/linux-osdata.h gdb-dlfcn.h auto-load.h probe.h stap-probe.h \
 gdb_bfd.h sparc-ravenscar-thread.h ppc-ravenscar-thread.h common/linux-btrace.h \
-ctf.h common/i386-cpuid.h common/i386-gcc-cpuid.h common/target-common.h
+ctf.h common/i386-cpuid.h common/i386-gcc-cpuid.h target/resume.h \
+target/wait.h target/waitstatus.h
 
 # Header files that already have srcdir in them, or which are in objdir.
 
@@ -948,7 +949,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
        inferior.o osdata.o gdb_usleep.o record.o record-full.o gcore.o \
        gdb_vecs.o jit.o progspace.o skip.o probe.o \
        common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o \
-       format.o registry.o btrace.o record-btrace.o target-common.o
+       format.o registry.o btrace.o record-btrace.o waitstatus.o
 
 TSOBS = inflow.o
 
@@ -2022,14 +2023,20 @@ linux-btrace.o: ${srcdir}/common/linux-btrace.c
        $(COMPILE) $(srcdir)/common/linux-btrace.c
        $(POSTCOMPILE)
 
-target-common.o: ${srcdir}/common/target-common.c
-       $(COMPILE) $(srcdir)/common/target-common.c
-       $(POSTCOMPILE)
-
 mips-linux-watch.o: ${srcdir}/common/mips-linux-watch.c
        $(COMPILE) $(srcdir)/common/mips-linux-watch.c
        $(POSTCOMPILE)
 
+#
+# gdb/target/ dependencies
+#
+# Need to explicitly specify the compile rule as make will do nothing
+# or try to compile the object file into the sub-directory.
+
+waitstatus.o: ${srcdir}/target/waitstatus.c
+       $(COMPILE) $(srcdir)/target/waitstatus.c
+       $(POSTCOMPILE)
+
 #
 # gdb/tui/ dependencies
 #
diff --git a/gdb/common/target-common.c b/gdb/common/target-common.c
deleted file mode 100644 (file)
index 2edbb2a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Common target operations for GDB and gdbserver.
-
-   Copyright (C) 1990-2013 Free Software Foundation, Inc.
-
-   Contributed by Cygnus Support.
-   Contributed by MontaVista Software.
-
-   This file is part of GDB.
-
-   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 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, see <http://www.gnu.org/licenses/>.  */
-
-#ifdef GDBSERVER
-#include "server.h"
-#else
-#include "defs.h"
-#endif
-
-/* Return a pretty printed form of target_waitstatus.
-   Space for the result is malloc'd, caller must free.  */
-
-#include "target-common.h"
-
-/* Return a pretty printed form of target_waitstatus.
-   Space for the result is malloc'd, caller must free.  */
-
-char *
-target_waitstatus_to_string (const struct target_waitstatus *ws)
-{
-  const char *kind_str = "status->kind = ";
-
-  switch (ws->kind)
-    {
-    case TARGET_WAITKIND_EXITED:
-      return xstrprintf ("%sexited, status = %d",
-                        kind_str, ws->value.integer);
-    case TARGET_WAITKIND_STOPPED:
-      return xstrprintf ("%sstopped, signal = %s",
-                        kind_str, gdb_signal_to_name (ws->value.sig));
-    case TARGET_WAITKIND_SIGNALLED:
-      return xstrprintf ("%ssignalled, signal = %s",
-                        kind_str, gdb_signal_to_name (ws->value.sig));
-    case TARGET_WAITKIND_LOADED:
-      return xstrprintf ("%sloaded", kind_str);
-    case TARGET_WAITKIND_FORKED:
-      return xstrprintf ("%sforked", kind_str);
-    case TARGET_WAITKIND_VFORKED:
-      return xstrprintf ("%svforked", kind_str);
-    case TARGET_WAITKIND_EXECD:
-      return xstrprintf ("%sexecd", kind_str);
-    case TARGET_WAITKIND_VFORK_DONE:
-      return xstrprintf ("%svfork-done", kind_str);
-    case TARGET_WAITKIND_SYSCALL_ENTRY:
-      return xstrprintf ("%sentered syscall", kind_str);
-    case TARGET_WAITKIND_SYSCALL_RETURN:
-      return xstrprintf ("%sexited syscall", kind_str);
-    case TARGET_WAITKIND_SPURIOUS:
-      return xstrprintf ("%sspurious", kind_str);
-    case TARGET_WAITKIND_IGNORE:
-      return xstrprintf ("%signore", kind_str);
-    case TARGET_WAITKIND_NO_HISTORY:
-      return xstrprintf ("%sno-history", kind_str);
-    case TARGET_WAITKIND_NO_RESUMED:
-      return xstrprintf ("%sno-resumed", kind_str);
-    default:
-      return xstrprintf ("%sunknown???", kind_str);
-    }
-}
diff --git a/gdb/common/target-common.h b/gdb/common/target-common.h
deleted file mode 100644 (file)
index d4d73f6..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Interface between the debugger and target environments, including files
-   and processes, shared between GDB and gdbserver.
-
-   Copyright (C) 1990-2013 Free Software Foundation, Inc.
-
-   Contributed by Cygnus Support.  Written by John Gilmore.
-
-   This file is part of GDB.
-
-   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 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, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef TARGET_COMMON_H
-#define TARGET_COMMON_H
-
-#include "common-utils.h"
-#include "ptid.h"
-#include "gdb_signals.h"
-
-/* 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
-};
-
-/* Stuff for target_wait.  */
-
-/* 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
-     (e.g. it called load(2) on AIX).  */
-  TARGET_WAITKIND_LOADED,
-
-  /* The program has forked.  A "related" process' PTID is in
-     value.related_pid.  I.e., if the child forks, value.related_pid
-     is the parent's ID.  */
-  TARGET_WAITKIND_FORKED,
-  /* The program has vforked.  A "related" process's PTID is in
-     value.related_pid.  */
-  TARGET_WAITKIND_VFORKED,
-  /* The program has exec'ed a new executable file.  The new file's
-     pathname is pointed to by value.execd_pathname.  */
-  TARGET_WAITKIND_EXECD,
-  
-  /* The program had previously vforked, and now the child is done
-     with the shared memory region, because it exec'ed or exited.
-     Note that the event is reported to the vfork parent.  This is
-     only used if GDB did not stay attached to the vfork child,
-     otherwise, a TARGET_WAITKIND_EXECD or
-     TARGET_WAITKIND_EXIT|SIGNALLED event associated with the child
-     has the same effect.  */
-  TARGET_WAITKIND_VFORK_DONE,
-
-  /* The program has entered or returned from a system call.  On
-     HP-UX, this is used in the hardware watchpoint implementation.
-     The syscall's unique integer ID number is in value.syscall_id.  */
-  TARGET_WAITKIND_SYSCALL_ENTRY,
-  TARGET_WAITKIND_SYSCALL_RETURN,
-
-  /* Nothing happened, but we stopped anyway.  This perhaps should be handled
-     within target_wait, but I'm not sure target_wait should be resuming the
-     inferior.  */
-  TARGET_WAITKIND_SPURIOUS,
-
-  /* An event has occured, but we should wait again.
-     Remote_async_wait() returns this when there is an event
-     on the inferior, but the rest of the world is not interested in
-     it.  The inferior has not stopped, but has just sent some output
-     to the console, for instance.  In this case, we want to go back
-     to the event loop and wait there for another event from the
-     inferior, rather than being stuck in the remote_async_wait()
-     function. sThis way the event loop is responsive to other events,
-     like for instance the user typing.  */
-  TARGET_WAITKIND_IGNORE,
-  /* The target has run out of history information,
-     and cannot run backward any further.  */
-  TARGET_WAITKIND_NO_HISTORY,
-  /* There are no resumed children left in the program.  */
-  TARGET_WAITKIND_NO_RESUMED
-};
-
-struct target_waitstatus
-{
-  enum target_waitkind kind;
-
-  /* Additional information about the event.  */
-  union
-    {
-      /* Exit status */
-      int integer;
-      /* Signal number */
-      enum gdb_signal sig;
-      /* Forked child pid */
-      ptid_t related_pid;
-      /* execd pathname */
-      char *execd_pathname;
-      /* Syscall number */
-      int syscall_number;
-    } value;
-};
-
-/* Options that can be passed to target_wait.  */
-
-/* Return immediately if there's no event already queued.  If this
-   options is not requested, target_wait blocks waiting for an
-   event.  */
-#define TARGET_WNOHANG 1
-
-/* Prototypes */
-
-/* Return a pretty printed form of target_waitstatus.
-   Space for the result is malloc'd, caller must free.  */
-extern char *target_waitstatus_to_string (const struct target_waitstatus *);
-
-#endif /* TARGET_COMMON_H */
index 375eadaebcfb11cfb3671e7c0e972cca05875893..93fdb87a416e73a1ecad63933642e30df0a6f093 100644 (file)
@@ -1,3 +1,18 @@
+2013-08-19  Luis Machado  <lgustavo@codesourcery.com>
+    
+       * Makefile.in (INCLUDE_CFLAGS): Include -I$(srcdir)/../.
+       (SFILES): Remove $(srcdir)/common/target-common.c and
+       add $(srcdir)/target/waitstatus.c.
+       (OBS): Remove target-common.o and add waitstatus.o.
+       (server_h): Remove $(srcdir)/../common/target-common.h and
+       add $(srcdir)/../target/resume.h, $(srcdir)/../target/wait.h
+       and $(srcdir)/../target/waitstatus.h.
+       (target-common.o): Remove.
+       (waitstatus.o): New target object file.
+       * target.h: Do not include target-common.h and
+       include target/resume.h, target/wait.h and
+       target/waitstatus.h.
+
 2013-08-13  Luis Machado  <lgustavo@codesourcery.com>
 
        * linux-arm-low.c: Rename all occurrences of PTRACE_ARG3_TYPE
index e541497938b2a217026c975493e25dd83639cd4e..2cdbf47bffb05a43001af54ff4dbd3038fbf08b1 100644 (file)
@@ -101,7 +101,7 @@ GNULIB_H = $(GNULIB_BUILDDIR)/import/string.h @GNULIB_STDINT_H@
 # -I${srcdir} for our headers.
 # -I$(srcdir)/../regformats for regdef.h.
 INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../common \
-       -I$(srcdir)/../regformats -I$(INCLUDE_DIR) \
+       -I$(srcdir)/../regformats -I$(srcdir)/../ -I$(INCLUDE_DIR) \
        $(INCGNU)
 
 # M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS
@@ -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/target-common.c \
+       $(srcdir)/common/filestuff.c $(srcdir)/target/waitstatus.c \
     $(srcdir)/common/mips-linux-watch.c
 
 DEPFILES = @GDBSERVER_DEPFILES@
@@ -168,7 +168,7 @@ 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 target-common.o utils.o version.o vec.o gdb_vecs.o \
+      target.o waitstatus.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)
@@ -437,7 +437,9 @@ 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 \
+               $(srcdir)/../target/resume.h \
+               $(srcdir)/../target/wait.h \
+               $(srcdir)/../target/waitstatus.h \
                $(ptid_h) \
                $(signals_h) \
                $(libiberty_h) \
@@ -550,7 +552,7 @@ filestuff.o: ../common/filestuff.c
 agent.o: ../common/agent.c
        $(COMPILE) $<
        $(POSTCOMPILE)
-target-common.o: ../common/target-common.c
+waitstatus.o: ../target/waitstatus.c
        $(COMPILE) $<
        $(POSTCOMPILE)
 
index d064b79ab5ab3608cc21ac54d66bfa2dba3ca1b2..7629b14a9a4798f1d8af404f11c7cbf4d61d3ed8 100644 (file)
@@ -21,7 +21,9 @@
 #ifndef TARGET_H
 #define TARGET_H
 
-#include "target-common.h"
+#include "target/resume.h"
+#include "target/wait.h"
+#include "target/waitstatus.h"
 
 struct emit_ops;
 struct btrace_target_info;
index 1d73bcd07f8758c06818447e2c2eaf0a011e14e0..d538e028644b4e7476c874e0d0ea969113bbca58 100644 (file)
@@ -57,7 +57,9 @@ struct expression;
    it goes into the file stratum, which is always below the process
    stratum.  */
 
-#include "target-common.h"
+#include "target/resume.h"
+#include "target/wait.h"
+#include "target/waitstatus.h"
 #include "bfd.h"
 #include "symtab.h"
 #include "memattr.h"
diff --git a/gdb/target/resume.h b/gdb/target/resume.h
new file mode 100644 (file)
index 0000000..bb7a38c
--- /dev/null
@@ -0,0 +1,37 @@
+/* Target resumption definitions and prototypes.
+
+   Copyright (C) 1990-2013 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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 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, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef RESUME_H
+#define RESUME_H
+
+/* 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
+};
+
+#endif /* RESUME_H */
diff --git a/gdb/target/wait.h b/gdb/target/wait.h
new file mode 100644 (file)
index 0000000..a5f18b5
--- /dev/null
@@ -0,0 +1,30 @@
+/* Target wait definitions and prototypes.
+
+   Copyright (C) 1990-2013 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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 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, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef WAIT_H
+#define WAIT_H
+
+/* Options that can be passed to target_wait.  */
+
+/* Return immediately if there's no event already queued.  If this
+   options is not requested, target_wait blocks waiting for an
+   event.  */
+#define TARGET_WNOHANG 1
+
+#endif /* WAIT_H */
diff --git a/gdb/target/waitstatus.c b/gdb/target/waitstatus.c
new file mode 100644 (file)
index 0000000..e6b8502
--- /dev/null
@@ -0,0 +1,72 @@
+/* Target waitstatus implementations.
+
+   Copyright (C) 1990-2013 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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 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, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef GDBSERVER
+#include "server.h"
+#else
+#include "defs.h"
+#endif
+
+#include "waitstatus.h"
+
+/* Return a pretty printed form of target_waitstatus.
+   Space for the result is malloc'd, caller must free.  */
+
+char *
+target_waitstatus_to_string (const struct target_waitstatus *ws)
+{
+  const char *kind_str = "status->kind = ";
+
+  switch (ws->kind)
+    {
+    case TARGET_WAITKIND_EXITED:
+      return xstrprintf ("%sexited, status = %d",
+                        kind_str, ws->value.integer);
+    case TARGET_WAITKIND_STOPPED:
+      return xstrprintf ("%sstopped, signal = %s",
+                        kind_str, gdb_signal_to_name (ws->value.sig));
+    case TARGET_WAITKIND_SIGNALLED:
+      return xstrprintf ("%ssignalled, signal = %s",
+                        kind_str, gdb_signal_to_name (ws->value.sig));
+    case TARGET_WAITKIND_LOADED:
+      return xstrprintf ("%sloaded", kind_str);
+    case TARGET_WAITKIND_FORKED:
+      return xstrprintf ("%sforked", kind_str);
+    case TARGET_WAITKIND_VFORKED:
+      return xstrprintf ("%svforked", kind_str);
+    case TARGET_WAITKIND_EXECD:
+      return xstrprintf ("%sexecd", kind_str);
+    case TARGET_WAITKIND_VFORK_DONE:
+      return xstrprintf ("%svfork-done", kind_str);
+    case TARGET_WAITKIND_SYSCALL_ENTRY:
+      return xstrprintf ("%sentered syscall", kind_str);
+    case TARGET_WAITKIND_SYSCALL_RETURN:
+      return xstrprintf ("%sexited syscall", kind_str);
+    case TARGET_WAITKIND_SPURIOUS:
+      return xstrprintf ("%sspurious", kind_str);
+    case TARGET_WAITKIND_IGNORE:
+      return xstrprintf ("%signore", kind_str);
+    case TARGET_WAITKIND_NO_HISTORY:
+      return xstrprintf ("%sno-history", kind_str);
+    case TARGET_WAITKIND_NO_RESUMED:
+      return xstrprintf ("%sno-resumed", kind_str);
+    default:
+      return xstrprintf ("%sunknown???", kind_str);
+    }
+}
diff --git a/gdb/target/waitstatus.h b/gdb/target/waitstatus.h
new file mode 100644 (file)
index 0000000..cafbf15
--- /dev/null
@@ -0,0 +1,126 @@
+/* Target waitstatus definitions and prototypes.
+
+   Copyright (C) 1990-2013 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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 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, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef WAITSTATUS_H
+#define WAITSTATUS_H
+
+#include "common-utils.h"
+#include "ptid.h"
+#include "gdb_signals.h"
+
+/* Stuff for target_wait.  */
+
+/* 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 (e.g. it called load(2) on AIX).  */
+  TARGET_WAITKIND_LOADED,
+
+  /* The program has forked.  A "related" process' PTID is in
+     value.related_pid.  I.e., if the child forks, value.related_pid
+     is the parent's ID.  */
+  TARGET_WAITKIND_FORKED,
+  /* The program has vforked.  A "related" process's PTID is in
+     value.related_pid.  */
+  TARGET_WAITKIND_VFORKED,
+  /* The program has exec'ed a new executable file.  The new file's
+     pathname is pointed to by value.execd_pathname.  */
+  TARGET_WAITKIND_EXECD,
+  
+  /* The program had previously vforked, and now the child is done
+     with the shared memory region, because it exec'ed or exited.
+     Note that the event is reported to the vfork parent.  This is
+     only used if GDB did not stay attached to the vfork child,
+     otherwise, a TARGET_WAITKIND_EXECD or
+     TARGET_WAITKIND_EXIT|SIGNALLED event associated with the child
+     has the same effect.  */
+  TARGET_WAITKIND_VFORK_DONE,
+
+  /* The program has entered or returned from a system call.  On
+     HP-UX, this is used in the hardware watchpoint implementation.
+     The syscall's unique integer ID number is in
+     value.syscall_id.  */
+  TARGET_WAITKIND_SYSCALL_ENTRY,
+  TARGET_WAITKIND_SYSCALL_RETURN,
+
+  /* Nothing happened, but we stopped anyway.  This perhaps should
+     be handled within target_wait, but I'm not sure target_wait
+     should be resuming the inferior.  */
+  TARGET_WAITKIND_SPURIOUS,
+
+  /* An event has occured, but we should wait again.
+     Remote_async_wait() returns this when there is an event
+     on the inferior, but the rest of the world is not interested in
+     it.  The inferior has not stopped, but has just sent some output
+     to the console, for instance.  In this case, we want to go back
+     to the event loop and wait there for another event from the
+     inferior, rather than being stuck in the remote_async_wait()
+     function. sThis way the event loop is responsive to other events,
+     like for instance the user typing.  */
+  TARGET_WAITKIND_IGNORE,
+  /* The target has run out of history information,
+     and cannot run backward any further.  */
+  TARGET_WAITKIND_NO_HISTORY,
+  /* There are no resumed children left in the program.  */
+  TARGET_WAITKIND_NO_RESUMED
+};
+
+struct target_waitstatus
+{
+  enum target_waitkind kind;
+
+  /* Additional information about the event.  */
+  union
+    {
+      /* Exit status */
+      int integer;
+      /* Signal number */
+      enum gdb_signal sig;
+      /* Forked child pid */
+      ptid_t related_pid;
+      /* execd pathname */
+      char *execd_pathname;
+      /* Syscall number */
+      int syscall_number;
+    } value;
+};
+
+/* Prototypes */
+
+/* Return a pretty printed form of target_waitstatus.
+   Space for the result is malloc'd, caller must free.  */
+extern char *target_waitstatus_to_string (const struct target_waitstatus *);
+
+#endif /* WAITSTATUS_H */
This page took 0.038772 seconds and 4 git commands to generate.