aboutsummaryrefslogtreecommitdiff
path: root/gdb/target/waitstatus.c
diff options
context:
space:
mode:
authorLuis Machado <luisgpm@br.ibm.com>2013-08-19 16:54:11 +0000
committerLuis Machado <luisgpm@br.ibm.com>2013-08-19 16:54:11 +0000
commit33b60d58316e0ce994c009e1a9bede277538b69e (patch)
tree62804f3cfed7731f38ee49204e0d99d1a320a452 /gdb/target/waitstatus.c
parent79ceb7cb739072ff6bc5fd143055e4d5172cf6bd (diff)
downloadgdb-33b60d58316e0ce994c009e1a9bede277538b69e.zip
gdb-33b60d58316e0ce994c009e1a9bede277538b69e.tar.gz
gdb-33b60d58316e0ce994c009e1a9bede277538b69e.tar.bz2
gdb/
* 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.
Diffstat (limited to 'gdb/target/waitstatus.c')
-rw-r--r--gdb/target/waitstatus.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/gdb/target/waitstatus.c b/gdb/target/waitstatus.c
new file mode 100644
index 0000000..e6b8502
--- /dev/null
+++ b/gdb/target/waitstatus.c
@@ -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);
+ }
+}