diff options
author | Pedro Alves <palves@redhat.com> | 2012-10-26 18:48:43 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2012-10-26 18:48:43 +0000 |
commit | 940c3c0683afd9d13629a9104695a24ed0fa82a3 (patch) | |
tree | 27b28f043f09d50fafeb1088c496e31b915278f6 /gdb | |
parent | 47b1906506da6096ba01fcc66f712d89feb312c9 (diff) | |
download | gdb-940c3c0683afd9d13629a9104695a24ed0fa82a3.zip gdb-940c3c0683afd9d13629a9104695a24ed0fa82a3.tar.gz gdb-940c3c0683afd9d13629a9104695a24ed0fa82a3.tar.bz2 |
2012-10-26 Pedro Alves <palves@redhat.com>
* infrun.c (handle_inferior_event) <TARGET_WAITKIND_SIGNALLED>:
Remove comment.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/infrun.c | 51 |
2 files changed, 30 insertions, 27 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e717353..fb6c990 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2012-10-26 Pedro Alves <palves@redhat.com> + * infrun.c (handle_inferior_event): Merge handling of + TARGET_WAITKIND_EXITED and TARGET_WAITKIND_SIGNALLED into a single + switch case. + +2012-10-26 Pedro Alves <palves@redhat.com> + * infrun.c (handle_inferior_event) <TARGET_WAITKIND_SIGNALLED>: Remove comment. diff --git a/gdb/infrun.c b/gdb/infrun.c index 5479486..d79c6bd 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -3370,23 +3370,38 @@ handle_inferior_event (struct execution_control_state *ecs) return; case TARGET_WAITKIND_EXITED: + case TARGET_WAITKIND_SIGNALLED: if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_EXITED\n"); + { + if (ecs->ws.kind == TARGET_WAITKIND_EXITED) + fprintf_unfiltered (gdb_stdlog, + "infrun: TARGET_WAITKIND_EXITED\n"); + else + fprintf_unfiltered (gdb_stdlog, + "infrun: TARGET_WAITKIND_SIGNALLED\n"); + } + inferior_ptid = ecs->ptid; set_current_inferior (find_inferior_pid (ptid_get_pid (ecs->ptid))); set_current_program_space (current_inferior ()->pspace); handle_vfork_child_exec_or_exit (0); target_terminal_ours (); /* Must do this before mourn anyway. */ - print_exited_reason (ecs->ws.value.integer); - /* Record the exit code in the convenience variable $_exitcode, so - that the user can inspect this again later. */ - set_internalvar_integer (lookup_internalvar ("_exitcode"), - (LONGEST) ecs->ws.value.integer); + if (ecs->ws.kind == TARGET_WAITKIND_EXITED) + { + /* Record the exit code in the convenience variable $_exitcode, so + that the user can inspect this again later. */ + set_internalvar_integer (lookup_internalvar ("_exitcode"), + (LONGEST) ecs->ws.value.integer); + + /* Also record this in the inferior itself. */ + current_inferior ()->has_exit_code = 1; + current_inferior ()->exit_code = (LONGEST) ecs->ws.value.integer; - /* Also record this in the inferior itself. */ - current_inferior ()->has_exit_code = 1; - current_inferior ()->exit_code = (LONGEST) ecs->ws.value.integer; + print_exited_reason (ecs->ws.value.integer); + } + else + print_signal_exited_reason (ecs->ws.value.sig); gdb_flush (gdb_stdout); target_mourn_inferior (); @@ -3396,24 +3411,6 @@ handle_inferior_event (struct execution_control_state *ecs) stop_stepping (ecs); return; - case TARGET_WAITKIND_SIGNALLED: - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_SIGNALLED\n"); - inferior_ptid = ecs->ptid; - set_current_inferior (find_inferior_pid (ptid_get_pid (ecs->ptid))); - set_current_program_space (current_inferior ()->pspace); - handle_vfork_child_exec_or_exit (0); - stop_print_frame = 0; - target_terminal_ours (); /* Must do this before mourn anyway. */ - - target_mourn_inferior (); - - print_signal_exited_reason (ecs->ws.value.sig); - singlestep_breakpoints_inserted_p = 0; - cancel_single_step_breakpoints (); - stop_stepping (ecs); - return; - /* The following are the only cases in which we keep going; the above cases end in a continue or goto. */ case TARGET_WAITKIND_FORKED: |