diff options
Diffstat (limited to 'gdb/gdbserver/remote-utils.c')
-rw-r--r-- | gdb/gdbserver/remote-utils.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c index 40bd373..15cdbe1 100644 --- a/gdb/gdbserver/remote-utils.c +++ b/gdb/gdbserver/remote-utils.c @@ -1132,6 +1132,8 @@ prepare_resume_reply (char *buf, ptid_t ptid, case TARGET_WAITKIND_VFORK_DONE: case TARGET_WAITKIND_EXECD: case TARGET_WAITKIND_THREAD_CREATED: + case TARGET_WAITKIND_SYSCALL_ENTRY: + case TARGET_WAITKIND_SYSCALL_RETURN: { struct thread_info *saved_thread; const char **regp; @@ -1181,6 +1183,16 @@ prepare_resume_reply (char *buf, ptid_t ptid, sprintf (buf, "T%02xcreate:;", signal); } + else if (status->kind == TARGET_WAITKIND_SYSCALL_ENTRY + || status->kind == TARGET_WAITKIND_SYSCALL_RETURN) + { + enum gdb_signal signal = GDB_SIGNAL_TRAP; + const char *event = (status->kind == TARGET_WAITKIND_SYSCALL_ENTRY + ? "syscall_entry" : "syscall_return"); + + sprintf (buf, "T%02x%s:%x;", signal, event, + status->value.syscall_number); + } else sprintf (buf, "T%02x", status->value.sig); |