From: Corinna Vinschen Date: Wed, 5 Dec 2001 08:36:01 +0000 (+0000) Subject: * arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=50f6fb4b7ad4b5071f7cd1d3b8507e528ed278ab;p=binutils-gdb.git * arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning the prologue if source is assembler. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 63f973f1d2e..59a4666b558 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2001-12-04 Corinna Vinschen + + * arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning + the prologue if source is assembler. + 2001-12-04 Jackie Smith Cashion * MAINTAINERS (write-after-approval): Add self. diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index f7d91eda05b..afcc7f03ac8 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -402,15 +402,24 @@ arm_skip_prologue (CORE_ADDR pc) unsigned long inst; CORE_ADDR skip_pc; CORE_ADDR func_addr, func_end; + char *func_name; struct symtab_and_line sal; /* 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); - if ((sal.line != 0) && (sal.end < func_end)) - return sal.end; + struct symbol *sym; + + /* 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. */