This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] Patch for THUMB skip_prologue code


The current THUMB prologue skipping code does not stop until
it reaches either the end of the function, or an address that
is the function start address plus 40.  This patch fixes it.
The gdb testsuite results for thumb code after applying this
patch have the following diff:

  10694c10694
  < FAIL: gdb.base/nodebug.exp: running to middle in runto
  ---
  > PASS: gdb.base/nodebug.exp: backtrace from middle in nodebug.exp
  15907,15908c15907,15908
  < # of expected passes        7469
  < # of unexpected failures    104
  ---
  > # of expected passes        7470
  > # of unexpected failures    103

-Fred

============================================================

2002-01-18  Fred Fish  <fnf@redhat.com>

	* arm-tdep.c (thumb_skip_prologue): Quit scanning prologue
	when we have found all instructions we are looking for.

Index: arm-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/arm-tdep.c,v
retrieving revision 1.26
diff -u -p -r1.26 arm-tdep.c
--- arm-tdep.c	2002/01/09 18:07:48	1.26
+++ arm-tdep.c	2002/01/18 23:26:14
@@ -376,6 +376,10 @@ thumb_skip_prologue (CORE_ADDR pc, CORE_
 	{
 	  findmask |= 2;  /* setting of r7 found */
 	}
+      else if (findmask == (4+2+1))
+	{
+	  break;	/* We have found one of each type of prologue instruction */
+	}
       else
 	continue;	/* something in the prolog that we don't care about or some
 	  		   instruction from outside the prolog scheduled here for optimization */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]