aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-05-13 19:34:00 +0000
committerAndrew Cagney <cagney@redhat.com>2004-05-13 19:34:00 +0000
commit0b30808c916cc4ff01cca027c672d9a4fcca0e1c (patch)
tree3ca00c77da9b892189753867326b238b11ec3d35 /gdb/infrun.c
parentcdf2c5f516c73172ae0bfe06fed25cb8cb4ea215 (diff)
downloadgdb-0b30808c916cc4ff01cca027c672d9a4fcca0e1c.zip
gdb-0b30808c916cc4ff01cca027c672d9a4fcca0e1c.tar.gz
gdb-0b30808c916cc4ff01cca027c672d9a4fcca0e1c.tar.bz2
2004-05-13 Andrew Cagney <cagney@redhat.com>
* infrun.c (handle_inferior_event): Check for STEP_OVER_UNDEBUGGABLE after signal trampolines and function calls. Update comments.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r--gdb/infrun.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 0ba857b..225dc53 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2411,18 +2411,6 @@ process_event_stop_test:
return;
}
- if (step_over_calls == STEP_OVER_UNDEBUGGABLE
- && ecs->stop_func_name == NULL)
- {
- /* There is no symbol, not even a minimal symbol, corresponding
- to the address where we just stopped. So we just stepped
- inside undebuggable code. Since we want to step over this
- kind of code, we keep going until the inferior returns from
- the current function. */
- handle_step_into_function (ecs);
- return;
- }
-
if (step_range_end != 1
&& (step_over_calls == STEP_OVER_UNDEBUGGABLE
|| step_over_calls == STEP_OVER_ALL)
@@ -2437,6 +2425,22 @@ process_event_stop_test:
return;
}
+ if (step_over_calls == STEP_OVER_UNDEBUGGABLE
+ && ecs->stop_func_name == NULL)
+ {
+ /* The inferior just stepped into, or returned to, an
+ undebuggable function (where there is no symbol, not even a
+ minimal symbol, corresponding to the address where the
+ inferior stopped). Since we want to skip this kind of code,
+ we keep going until the inferior returns from this
+ function. */
+ /* NOTE: cagney/2004-05-12: This test is performed after the
+ sigtramp test as often sigtramps, while recognized by GDB,
+ have no symbol information. */
+ handle_step_into_function (ecs);
+ return;
+ }
+
if (frame_id_eq (frame_unwind_id (get_current_frame ()),
step_frame_id))
{