aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2001-12-05 08:36:01 +0000
committerCorinna Vinschen <corinna@vinschen.de>2001-12-05 08:36:01 +0000
commit50f6fb4b7ad4b5071f7cd1d3b8507e528ed278ab (patch)
tree59d06fc928418861cfbdc83191ca961e3f4ee366
parent02da620696a4889e56061e9f9048c0624c8436eb (diff)
downloadfsf-binutils-gdb-50f6fb4b7ad4b5071f7cd1d3b8507e528ed278ab.zip
fsf-binutils-gdb-50f6fb4b7ad4b5071f7cd1d3b8507e528ed278ab.tar.gz
fsf-binutils-gdb-50f6fb4b7ad4b5071f7cd1d3b8507e528ed278ab.tar.bz2
* arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning
the prologue if source is assembler.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/arm-tdep.c17
2 files changed, 18 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 63f973f..59a4666 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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>
* MAINTAINERS (write-after-approval): Add self.
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index f7d91ed..afcc7f0 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. */