* frame.c (select_frame): Get the current frame PC using

get_frame_address_in_block() instead of get_frame_pc().
        * stack.c (get_frame_language): Likewise.
This commit is contained in:
Joel Brobecker
2003-12-10 17:40:43 +00:00
parent 4249f881bd
commit 7ae4c3a566
3 changed files with 21 additions and 2 deletions

View File

@@ -917,7 +917,13 @@ select_frame (struct frame_info *fi)
source language of this frame, and switch to it if desired. */
if (fi)
{
s = find_pc_symtab (get_frame_pc (fi));
/* We retrieve the frame's symtab by using the frame PC. However
we cannot use the frame pc as is, because it usually points to
the instruction following the "call", which is sometimes the
first instruction of another function. So we rely on
get_frame_address_in_block() which provides us with a PC which
is guaranteed to be inside the frame's code block. */
s = find_pc_symtab (get_frame_address_in_block (fi));
if (s
&& s->language != current_language->la_language
&& s->language != language_unknown