diff options
author | Tom Tromey <tromey@redhat.com> | 2012-01-24 21:32:56 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-01-24 21:32:56 +0000 |
commit | f90263c12471deb24d0fb69c09b8039b1d50af16 (patch) | |
tree | 47be77e01d022ebdde0b0df328888aae12302d2d /gdb/infrun.c | |
parent | 09ac7c10d43e1cbbebdc90e9f7b044d34488f2ec (diff) | |
download | fsf-binutils-gdb-f90263c12471deb24d0fb69c09b8039b1d50af16.zip fsf-binutils-gdb-f90263c12471deb24d0fb69c09b8039b1d50af16.tar.gz fsf-binutils-gdb-f90263c12471deb24d0fb69c09b8039b1d50af16.tar.bz2 |
2012-01-24 Pedro Alves <pedro@codesourcery.com>
* breakpoint.c (breakpoint_hit_catch_fork)
(breakpoint_hit_catch_vfork, breakpoint_hit_catch_syscall)
(breakpoint_hit_catch_exec): Make use of the `ws' argument.
* infrun.c (inferior_has_forked, inferior_has_vforked)
(inferior_has_execd, inferior_has_called_syscall): Delete.
(handle_syscall_event): Get syscall_number from the execution
control state's wait status.
(wait_for_inferior): Don't clear syscall_number.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 81 |
1 files changed, 1 insertions, 80 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index 23a4bba..de4a8b7 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2701,10 +2701,6 @@ wait_for_inferior (void) state. */ old_chain = make_cleanup (finish_thread_state_cleanup, &minus_one_ptid); - if (ecs->ws.kind == TARGET_WAITKIND_SYSCALL_ENTRY - || ecs->ws.kind == TARGET_WAITKIND_SYSCALL_RETURN) - ecs->ws.value.syscall_number = UNKNOWN_SYSCALL; - /* Now figure out what to do with the result of the result. */ handle_inferior_event (ecs); @@ -3072,11 +3068,9 @@ handle_syscall_event (struct execution_control_state *ecs) regcache = get_thread_regcache (ecs->ptid); gdbarch = get_regcache_arch (regcache); - syscall_number = gdbarch_get_syscall_number (gdbarch, ecs->ptid); + syscall_number = ecs->ws.value.syscall_number; stop_pc = regcache_read_pc (regcache); - target_last_waitstatus.value.syscall_number = syscall_number; - if (catch_syscall_enabled () > 0 && catching_syscall_number (syscall_number) > 0) { @@ -6863,79 +6857,6 @@ discard_infcall_control_state (struct infcall_control_state *inf_status) } int -inferior_has_forked (ptid_t pid, ptid_t *child_pid) -{ - struct target_waitstatus last; - ptid_t last_ptid; - - get_last_target_status (&last_ptid, &last); - - if (last.kind != TARGET_WAITKIND_FORKED) - return 0; - - if (!ptid_equal (last_ptid, pid)) - return 0; - - *child_pid = last.value.related_pid; - return 1; -} - -int -inferior_has_vforked (ptid_t pid, ptid_t *child_pid) -{ - struct target_waitstatus last; - ptid_t last_ptid; - - get_last_target_status (&last_ptid, &last); - - if (last.kind != TARGET_WAITKIND_VFORKED) - return 0; - - if (!ptid_equal (last_ptid, pid)) - return 0; - - *child_pid = last.value.related_pid; - return 1; -} - -int -inferior_has_execd (ptid_t pid, char **execd_pathname) -{ - struct target_waitstatus last; - ptid_t last_ptid; - - get_last_target_status (&last_ptid, &last); - - if (last.kind != TARGET_WAITKIND_EXECD) - return 0; - - if (!ptid_equal (last_ptid, pid)) - return 0; - - *execd_pathname = xstrdup (last.value.execd_pathname); - return 1; -} - -int -inferior_has_called_syscall (ptid_t pid, int *syscall_number) -{ - struct target_waitstatus last; - ptid_t last_ptid; - - get_last_target_status (&last_ptid, &last); - - if (last.kind != TARGET_WAITKIND_SYSCALL_ENTRY && - last.kind != TARGET_WAITKIND_SYSCALL_RETURN) - return 0; - - if (!ptid_equal (last_ptid, pid)) - return 0; - - *syscall_number = last.value.syscall_number; - return 1; -} - -int ptid_match (ptid_t ptid, ptid_t filter) { if (ptid_equal (filter, minus_one_ptid)) |