diff options
author | Daniel Jacobowitz <dan@debian.org> | 2006-03-30 16:37:13 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2006-03-30 16:37:13 +0000 |
commit | 0374cc263e22d297c9edb1f0ae5d1831d6b0f448 (patch) | |
tree | f6f00a3cddf1ef41444a66521f495d5b6baaced8 | |
parent | c2925413e58f8b3ce7504f2dd097be2ac9646a93 (diff) | |
download | gdb-0374cc263e22d297c9edb1f0ae5d1831d6b0f448.tar.gz |
* frame.h (set_current_sal_from_frame): New prototype.
* stack.c (set_current_sal_from_frame): Make global.
* infrun.c (normal_stop): Call set_current_sal_from_frame.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/frame.h | 6 | ||||
-rw-r--r-- | gdb/infrun.c | 6 | ||||
-rw-r--r-- | gdb/stack.c | 4 |
4 files changed, 19 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b61365fa3cb..87c7974a219 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,4 +1,10 @@ 2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> + + * frame.h (set_current_sal_from_frame): New prototype. + * stack.c (set_current_sal_from_frame): Make global. + * infrun.c (normal_stop): Call set_current_sal_from_frame. + +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> * linux-thread-db.c: Include "linux-nat.h". (check_for_thread_db): New function, split out from diff --git a/gdb/frame.h b/gdb/frame.h index a73a4f1dec3..800cbfbcf18 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -300,6 +300,12 @@ extern CORE_ADDR get_frame_func (struct frame_info *fi); extern void find_frame_sal (struct frame_info *frame, struct symtab_and_line *sal); +/* Set the current source and line to the location given by frame + FRAME, if possible. When CENTER is true, adjust so the relevant + line is in the center of the next 'list'. */ + +void set_current_sal_from_frame (struct frame_info *, int); + /* Return the frame base (what ever that is) (DEPRECATED). Old code was trying to use this single method for two conflicting diff --git a/gdb/infrun.c b/gdb/infrun.c index 47fbe09ed72..bccca0d7dc9 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -3044,6 +3044,12 @@ Further execution is probably impossible.\n")); target_terminal_ours (); + /* Set the current source location. This will also happen if we + display the frame below, but the current SAL will be incorrect + during a user hook-stop function. */ + if (target_has_stack && !stop_stack_dummy) + set_current_sal_from_frame (get_current_frame (), 1); + /* Look up the hook_stop and run it (CLI internally handles problem of stop_command's pre-hook not existing). */ if (stop_command) diff --git a/gdb/stack.c b/gdb/stack.c index 435bb0c9e7a..d0bbc87b1cb 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -61,8 +61,6 @@ static void print_frame (struct frame_info *frame, int print_level, enum print_what print_what, int print_args, struct symtab_and_line sal); -static void set_current_sal_from_frame (struct frame_info *, int); - /* Zero means do things normally; we are interacting directly with the user. One means print the full filename and linenumber when a frame is printed, and do so in a format emacs18/emacs19.22 can @@ -373,7 +371,7 @@ print_args_stub (void *args) FRAME, if possible. When CENTER is true, adjust so the relevant line is in the center of the next 'list'. */ -static void +void set_current_sal_from_frame (struct frame_info *frame, int center) { struct symtab_and_line sal; |