Problem caused by removed function and its remaining dwarf entry

Terry Guo terry.guo@arm.com
Fri Feb 13 09:07:00 GMT 2015


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.

BR,
Terry





More information about the Binutils mailing list