This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

RE: arm-elf-gcc Debug info


Doug,
I guess my question was a little off. what I really should have asked is
this:
what happens if I create a Read Write Position Independent  (or RWPI ) image
which will be loaded dynamiclly by my system during runtime. how can I make
it's debugging info accessible to the debugger? (let's say  I want to
interleave code and assembly) is this even possible ?


Yadid


-----Original Message-----
From: crossgcc-owner@sources.redhat.com
[mailto:crossgcc-owner@sources.redhat.com]On Behalf Of Doug Evans
Sent: Wednesday, July 16, 2003 7:02 PM
To: ayzen@hotmail.co.il
Cc: crossgcc@sources.redhat.com
Subject: arm-elf-gcc Debug info


Yadid Ayzenberg writes:
 > Hi guys,
 > I'm trying to gain a better understanding of the debug information
 > mechanisms.
 > I use an arm-elf-gcc compiler, and use an AXD debugger to load the images
 > (sometimes AXD does not understand the debug info). my question is where
in
 > the image is the debug information kept, and in what format (dwarf? ).
 > If I build relocatable rwpi code, how will the debugger find the
debugging
 > info? is this even possible?

Here's one way to tell which debug format is used.
What's the output of arm-elf-objdump -h foo.elf?

If you see a section called .stab then the format is stabs.
If you see a section called .debug then the format is dwarf1.
If you see a section called .debug_line then the format is dwarf2.

Each of these has other sections containing debug info,
the above is just an algorithm to decide what format is used.

I don't know what rwpi is, but if your debugger can read elf files,
then it needs to understand the various sections containing the debug info.

You can see what sections are used by studying the standard elf linker
script in ld/scripttempl/elf.sc in the gnu binutils sources.
Here's an excerpt.

  /* Stabs debugging sections.  */
  .stab          0 : { *(.stab) }
  .stabstr       0 : { *(.stabstr) }
  .stab.excl     0 : { *(.stab.excl) }
  .stab.exclstr  0 : { *(.stab.exclstr) }
  .stab.index    0 : { *(.stab.index) }
  .stab.indexstr 0 : { *(.stab.indexstr) }

  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */

  /* DWARF 1 */
  .debug          0 : { *(.debug) }
  .line           0 : { *(.line) }

  /* GNU DWARF 1 extensions */
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
  .debug_sfnames  0 : { *(.debug_sfnames) }

  /* DWARF 1.1 and DWARF 2 */
  .debug_aranges  0 : { *(.debug_aranges) }
  .debug_pubnames 0 : { *(.debug_pubnames) }

  /* DWARF 2 */
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) }
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) }

  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) }

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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