* arm-tdep.c (arm_skip_prologue): Always skip prologue by scanning
authorCorinna Vinschen <corinna@vinschen.de>
Wed, 5 Dec 2001 08:36:01 +0000 (08:36 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Wed, 5 Dec 2001 08:36:01 +0000 (08:36 +0000)
the prologue if source is assembler.

gdb/ChangeLog
gdb/arm-tdep.c

index 63f973f1d2e5608261fe0c851edc04cf8fe00ef3..59a4666b55827f320deb77960a15bd0f75c64765 100644 (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>
 
        * MAINTAINERS (write-after-approval): Add self.
index f7d91eda05bc82c442a439299c74e9939fafccdc..afcc7f03ac86ce312b7178c94dfdee7af565877c 100644 (file)
@@ -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.  */