This is the mail archive of the mailing list for the binutils 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: Problem caused by removed function and its remaining dwarf entry

On Fri, Feb 13, 2015 at 05:57:32PM +0800, Terry Guo wrote:
> On Fri, Feb 13, 2015 at 5:36 PM, Senthil Kumar Selvaraj
> <> wrote:
> > On Fri, Feb 13, 2015 at 05:07:08PM +0800, Terry Guo wrote:
> >> Hi there,
> >>
> >> I have an unused function foo in file foo.c which is then compiled with -O0
> >> and -ffunction-sections. The foo function will be kept in foo.o and will get
> >> a dwarf entry in dwarf section. Lately the --gc-section will discard this
> >> unused function and its section, but won't clean its dwarf entry. Then when
> >> set breakpoint for function foo under gdb, gdb will use such remaining and
> >> incorrect dwarf entry to set breakpoint for no-longer-existing function foo.
> >> For embedded target, such incorrect information like PC value will be passed
> >> to hardware debug unit to set breakpoint, this will cause trouble.
> >>
> >> Is it possible to remove corresponding dwarf entry after --gc-section
> >> discarded sections? Please help. Thanks in advance.
> >
> > I encountered this a while back (see
> >
> >
> > AFAIK, this requires changes in the way the compiler emits DWARF. Right
> > now, all debug info for a compilation unit are grouped together, and
> > unless the linker understands DWARF binary format, it can't removing the
> > entries.
> >
> > So, we'd need to make the compiler emit the appropriate DW_TAGs, and
> > make gdb understand them.
> >
> > Regards
> > Senthil
> Totally agree with your idea and patch. Do you have any plan to
> continue your work to get gcc accept your patch? I think it will be a
> very helpful feature.

Sure, I'll work on it and get something out next week.


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