Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Pierre Habraken <Pierre.Habraken@imag.fr>
To: binutils@sources.redhat.com, gdb@sources.redhat.com
Cc: "Keith.Walker" <Keith.Walker@arm.com>,
	Elias Athanasopoulos <eathan@otenet.gr>
Subject: Re: Section .debug_info in object file
Date: Sat, 14 Sep 2002 04:49:00 -0000	[thread overview]
Message-ID: <3D832247.D1F4ECBC@imag.fr> (raw)
In-Reply-To: <4.1.20020912105556.01e79f10@mhsun1.maidenhead.arm.com>

Thanks a lot to Keith and Elias for their reply.
Things are a little bit clearer now for me as regards the section
.debug_info in Elf object files and the dwarf2 specification.

I tried to make gcc produce an assembly language output from a C file
(options -S and -g).
I noticed that gcc included into the assembly output all necessary
directives for the .debug_info section to be generated into the object
file.
I infer from that observation that whoever produces the assembly
language source taken as input by the assembler stage, either an
assembly language programmer or a C or high level language front end
compiler, has the responsability to include the code for creating the
.debug_info section and describing its contents.
Am I wrong ?

In any case, I wonder what is the exact purpose of the option --gdwarf2
of gas ? :
On one hand, if it is supposed to make the .debug_info section be
generated, the latter should include all relevant debugging information.
On the other hand, if it not supposed to make the .debug_info section be
created, what is its use ?

I also noticed that option -g passed to the C compiler is sufficient for
getting a .debug_info section. So my question is : why would I use the
option -gdwarf-2 instead of -g ?...

Pierre


"Keith.Walker" wrote:
> 
> >Knowing that rises several questions:
> >
> >- what is the structure of a '.debug_info' section ?
> >  Is this structure documented somewhere ?
> 
> Yes .....
> 
> The web site http://www.eagercon.com/dwarf/dwarf3std.htm contains both the
> original DWARF2 specification and the (almost) current DWARF3 draft.   [A
> later draft can be found at
> http://reality.sgiweb.org/davea/dwarf3-draft8-011125.pdf ]
> 
> >- which tool can be used to examine the contents of a '.debug_info'
> >  section ? I tried to use arm-elf-objdump but the result which it
> >  displays is not formatted and checking it is not easy...
> 
> Try arm-elf-readelf
> 
> >- is there a way to force gas to include a field 'DW_AT_name' in the
> >  object files it produces ?
> >  (an option on the command line ? a directive inside the source file ?)
> 
> I haven't looked but I suspect there isn't a command line option;   more
> likely this will require a source change in binutils.
> 
> >- why would gdb be not able to retrieve an assembly language source file
> >  (together with its name) as long as no breakpoint is set by the user
> >  within this file, where it is able to retrieve this same source file
> >  as soon as a first breakpoint is set (though the name of the source
> >  file is not present in the object file) ?...
> 
> The following is only what I suspect is happening (I haven't actually
> looked at the code).
> 
> On initial load the debugger uses the DW_AT_name attribute specified in the
> DW_TAG_compile_unit tags in order to determine the names of the initial
> source files.    As there is no DW_AT_name for assembler files they aren't
> added to the initial list of source files.
> 
> However when a breakpoint is set it reads the line number table for the
> area/region in which the addess is located; the line number contains the
> names of all the files associated with that table.     Therefore at this
> point it now knows about the assembler file.
> 
> Keith
> Keith Walker            keith.walker@arm.com            Tel:+44 (1628) 427732
> ARM Ltd         http://www.arm.com

-- 
________________________________________________________________________
Pierre HABRAKEN - mailto:Pierre.Habraken@imag.fr
Tél: 04 76 82 72 83 - Fax: 04 76 82 72 87
IMAG-LSR BP72 38402 SAINT MARTIN D'HERES Cedex
________________________________________________________________________


  reply	other threads:[~2002-09-14 11:49 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-12  2:42 Pierre Habraken
2002-09-12  4:46 ` Keith.Walker
2002-09-14  4:49   ` Pierre Habraken [this message]
2002-09-16  3:10     ` Keith.Walker
2002-09-16  3:30       ` Elias Athanasopoulos
2002-09-16  3:43       ` Pierre Habraken
2002-09-12 11:45 ` [PATCH] " Elias Athanasopoulos
2002-09-12 13:54   ` Richard Henderson
2002-09-12 14:55     ` Elias Athanasopoulos
2002-09-15  2:25     ` Elias Athanasopoulos
2002-09-16 19:35       ` Richard Henderson
2002-09-16 19:51   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3D832247.D1F4ECBC@imag.fr \
    --to=pierre.habraken@imag.fr \
    --cc=Keith.Walker@arm.com \
    --cc=binutils@sources.redhat.com \
    --cc=eathan@otenet.gr \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox