waitstatus.c revision 1.1.1.4
1/* Target waitstatus implementations. 2 3 Copyright (C) 1990-2017 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20#include "common-defs.h" 21#include "waitstatus.h" 22 23/* Return a pretty printed form of target_waitstatus. 24 Space for the result is malloc'd, caller must free. */ 25 26char * 27target_waitstatus_to_string (const struct target_waitstatus *ws) 28{ 29 const char *kind_str = "status->kind = "; 30 31 switch (ws->kind) 32 { 33 case TARGET_WAITKIND_EXITED: 34 return xstrprintf ("%sexited, status = %d", 35 kind_str, ws->value.integer); 36 case TARGET_WAITKIND_STOPPED: 37 return xstrprintf ("%sstopped, signal = %s", 38 kind_str, 39 gdb_signal_to_symbol_string (ws->value.sig)); 40 case TARGET_WAITKIND_SIGNALLED: 41 return xstrprintf ("%ssignalled, signal = %s", 42 kind_str, 43 gdb_signal_to_symbol_string (ws->value.sig)); 44 case TARGET_WAITKIND_LOADED: 45 return xstrprintf ("%sloaded", kind_str); 46 case TARGET_WAITKIND_FORKED: 47 return xstrprintf ("%sforked", kind_str); 48 case TARGET_WAITKIND_VFORKED: 49 return xstrprintf ("%svforked", kind_str); 50 case TARGET_WAITKIND_EXECD: 51 return xstrprintf ("%sexecd", kind_str); 52 case TARGET_WAITKIND_VFORK_DONE: 53 return xstrprintf ("%svfork-done", kind_str); 54 case TARGET_WAITKIND_SYSCALL_ENTRY: 55 return xstrprintf ("%sentered syscall", kind_str); 56 case TARGET_WAITKIND_SYSCALL_RETURN: 57 return xstrprintf ("%sexited syscall", kind_str); 58 case TARGET_WAITKIND_SPURIOUS: 59 return xstrprintf ("%sspurious", kind_str); 60 case TARGET_WAITKIND_IGNORE: 61 return xstrprintf ("%signore", kind_str); 62 case TARGET_WAITKIND_NO_HISTORY: 63 return xstrprintf ("%sno-history", kind_str); 64 case TARGET_WAITKIND_NO_RESUMED: 65 return xstrprintf ("%sno-resumed", kind_str); 66 case TARGET_WAITKIND_THREAD_CREATED: 67 return xstrprintf ("%sthread created", kind_str); 68 case TARGET_WAITKIND_THREAD_EXITED: 69 return xstrprintf ("%sthread exited, status = %d", 70 kind_str, ws->value.integer); 71 default: 72 return xstrprintf ("%sunknown???", kind_str); 73 } 74} 75