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]

RFA: [buildsym.c] Turn off unused addr bits in linetable


Some systems like ARM may have extra bits set in the address to indicate
a mode or something else (the LSB=1 means thumb mode for ARM).

So, before storing line number addresses we may need to turn this bits
off as they may be passed to gdb with the bits on as result of
relocation (ld has no way of knowing it is for a line table entry).

The following patch passes the line addresses through the target
dependent macro ADDR_BITS_REMOVE() before storing it on the table.

OK to commit?


ChangeLog:

	* buildsym.c (record_line): Turn off unused addr bits.

-- 
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9
Index: gdb/buildsym.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/buildsym.c,v
retrieving revision 2.104
diff -c -p -r2.104 buildsym.c
*** buildsym.c	2000/02/21 10:02:58	2.104
--- buildsym.c	2001/03/12 23:50:04
*************** record_line (register struct subfile *su
*** 725,731 ****
  
    e = subfile->line_vector->item + subfile->line_vector->nitems++;
    e->line = line;
!   e->pc = pc;
  }
  
  /* Needed in order to sort line tables from IBM xcoff files.  Sigh!  */
--- 725,731 ----
  
    e = subfile->line_vector->item + subfile->line_vector->nitems++;
    e->line = line;
!   e->pc = ADDR_BITS_REMOVE(pc);
  }
  
  /* Needed in order to sort line tables from IBM xcoff files.  Sigh!  */

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