* arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning

the prologue if source is assembler.
This commit is contained in:
Corinna Vinschen 2001-12-05 08:36:01 +00:00
parent 02da620696
commit 50f6fb4b7a
2 changed files with 18 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2001-12-04 Corinna Vinschen <vinschen@redhat.com>
* arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning
the prologue if source is assembler.
2001-12-04 Jackie Smith Cashion <jsmith@redhat.com> 2001-12-04 Jackie Smith Cashion <jsmith@redhat.com>
* MAINTAINERS (write-after-approval): Add self. * MAINTAINERS (write-after-approval): Add self.

View File

@ -402,15 +402,24 @@ arm_skip_prologue (CORE_ADDR pc)
unsigned long inst; unsigned long inst;
CORE_ADDR skip_pc; CORE_ADDR skip_pc;
CORE_ADDR func_addr, func_end; CORE_ADDR func_addr, func_end;
char *func_name;
struct symtab_and_line sal; struct symtab_and_line sal;
/* See what the symbol table says. */ /* See what the symbol table says. */
if (find_pc_partial_function (pc, NULL, &func_addr, &func_end)) if (find_pc_partial_function (pc, &func_name, &func_addr, &func_end))
{ {
sal = find_pc_line (func_addr, 0); struct symbol *sym;
if ((sal.line != 0) && (sal.end < func_end))
return sal.end; /* Found a function. */
sym = lookup_symbol (func_name, NULL, VAR_NAMESPACE, NULL, NULL);
if (sym && SYMBOL_LANGUAGE (sym) != language_asm)
{
/* Don't use this trick for assembly source files. */
sal = find_pc_line (func_addr, 0);
if ((sal.line != 0) && (sal.end < func_end))
return sal.end;
}
} }
/* Check if this is Thumb code. */ /* Check if this is Thumb code. */