bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/18390] how to tell if the dwarf line generated is for literal p


From: nickc at redhat dot com
Subject: [Bug gas/18390] how to tell if the dwarf line generated is for literal pools ( re bug 12974 )
Date: Wed, 13 May 2015 15:14:42 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=18390

Nick Clifton <nickc at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |nickc at redhat dot com

--- Comment #1 from Nick Clifton <nickc at redhat dot com> ---
Hi Raymond,

  The only way that I can think of is that the entries refer to addresses
within the .text section, but they have a $d data symbol associated with them.

  For example, using the testcase from PR 12974, the line number table of the
assembled start.o binary looks like this:

 Line Number Statements:
  [0x00000028]  Extended opcode 2: set Address to 0x0
  [0x0000002f]  Special opcode 8: advance Address by 0 to 0x0 and Line by 3 to
4
  [0x00000030]  Special opcode 34: advance Address by 4 to 0x4 and Line by 1 to
5
  [0x00000031]  Special opcode 34: advance Address by 4 to 0x8 and Line by 1 to
6
  [0x00000032]  Special opcode 34: advance Address by 4 to 0xc and Line by 1 to
7
  [0x00000033]  Special opcode 34: advance Address by 4 to 0x10 and Line by 1
to 8
  [0x00000034]  Special opcode 34: advance Address by 4 to 0x14 and Line by 1
to 9
  [0x00000035]  Special opcode 36: advance Address by 4 to 0x18 and Line by 3
to 12
  [0x00000036]  Special opcode 37: advance Address by 4 to 0x1c and Line by 4
to 16
  [0x00000037]  Special opcode 34: advance Address by 4 to 0x20 and Line by 1
to 17
  [0x00000038]  Special opcode 34: advance Address by 4 to 0x24 and Line by 1
to 18
  [0x00000039]  Advance Line by -14 to 4
  [0x0000003b]  Special opcode 33: advance Address by 4 to 0x28 and Line by 0
to 4
  [0x0000003c]  Special opcode 41: advance Address by 4 to 0x2c and Line by 8
to 12
  [0x0000003d]  Special opcode 37: advance Address by 4 to 0x30 and Line by 4
to 16

The entries at 0x00000039 .. 0x0000003d refer to the literal pool.  If you look
at the symbol table for start.o then you will see:

  00000000 t $a
  00000028 t $d

Ie addresses 0x0 .. 0x27 contain code, but address 0x28 onwards contain data.  

I hope that this helps.

Cheers
  Nick

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]