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]

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


Fernando Nasser wrote:
> 
> 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?

It seems in general like the right thing -- but I can't speak to 
every target that uses this macro.  Certainly it will not hurt 
any target that doesn't define the macro (which defaults to identity).

> 
> 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]