This is the mail archive of the gdb@sourceware.org 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]
Other format: [Raw text]

Re: debugging something with multiple text sections in onecompilation unit


On Fri 3 Aug 2007 07:37, Daniel Jacobowitz pondered:
> On Fri, Aug 03, 2007 at 12:09:46AM -0400, Robin Getz wrote:
> > As far as we can tell - there seems to be a limitation in DWARF spec
> > (or DWARF implementation of gcc/gdb) - there seems to be only only one
> > single base address. All other addresses are an offset to that base 
> > in the same compilation unit. 
> > 
> > When we use l1_text attribute, we have two code segments in one
> > compilation unit and the offset between them is determined only when
> > it's loaded. So one segment cannot get symbol addresses computed
> > correctly - and we can not set  breakpoints in functions that are 
> > in L1, and debugging applications is pretty difficult.
> 
> There is no requirement to use a single base address in DWARF, or in
> GDB's implementation of it; just use .debug_aranges.  GCC does the
> right thing if you use __attribute__((section)).

Thanks for the pointer - I will check to make sure the compiler is populating 
this properly (which it looks like it is).

I found this discussion (after I knew what to search for)
http://www.eagercon.com/dwarf/issues/001101-1.htm

> You're supposed to tell GDB the section offsets, so that it can adjust
> debug info appropriately.  See add-symbol-file in the manual.  There's
> no way yet to do this automatically for a single section, though; only
> by hand.

I assume it should be "add-symbol-file -file filename -sl1_text address"
Hmm... That stinks.

Since gdb knows there are multiple discontinuous sections (via 
parsing .debug_aranges) why not just ask the kernel where the section was 
loaded?

Or is it "it's possible, just not implemented"

-Robin


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