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
________________________________________________________________________
next prev parent 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