* 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

@ -2036,7 +2036,14 @@ get_frame_language (void)
if (deprecated_selected_frame)
{
s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
/* We determine the current frame language by looking up its
associated symtab. To retrieve this symtab, we use 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(), it 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 (deprecated_selected_frame));
if (s)
flang = s->language;
else