Mark Kettenis <kettenis@gnu.org>
authorMark Kettenis <kettenis@gnu.org>
Thu, 29 Apr 2004 16:24:01 +0000 (16:24 +0000)
committerMark Kettenis <kettenis@gnu.org>
Thu, 29 Apr 2004 16:24:01 +0000 (16:24 +0000)
* i386-tdep.c (i386_skip_prologue): follow the last jump only if
the function begins with a branch instruction.

gdb/ChangeLog
gdb/i386-tdep.c

index f966fd937eb5467158a2108d45c34edd0cb61a2b..fc8d338a10838fc4ce52f06f2f792db451fd6cca 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-19  Jerome Guitton  <guitton@gnat.com>
+           Mark Kettenis  <kettenis@gnu.org>
+
+       * i386-tdep.c (i386_skip_prologue): follow the last jump only if
+       the function begins with a branch instruction.
+
 2004-04-29  Mark Kettenis  <kettenis@gnu.org>
 
        * i386-tdep.c: Fix spelling mistakes.
index 2ee86953cb3f38f9e8118f522f533bdce3b20d0f..5e4eec94daf1d77ed7eb8113eb8063b459eca156 100644 (file)
@@ -750,7 +750,13 @@ i386_skip_prologue (CORE_ADDR start_pc)
        }
     }
 
-  return i386_follow_jump (pc);
+  /* If the function starts with a branch (to startup code at the end)
+     the last instruction should bring us back to the first
+     instruction of the real code.  */
+  if (i386_follow_jump (start_pc) != start_pc)
+    pc = i386_follow_jump (pc);
+
+  return pc;
 }
 
 /* This function is 64-bit safe.  */