This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils 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: [PATCH] libdw: Add new function dwarf_getlocations.


On Tue, 03 Sep 2013 13:43:29 +0200, Mark Wielaard wrote:
> Good point, assuming you meant dwarf_getlocation_addr, that removes some
> duplicate code. Revised patch attached.

You have not addressed my previous note
# Although one would have to hack there prevention of getlocation() for
# non-matching ranges.

Currently you call getlocation->__libdw_intern_expression for every range in
the location list, even if that range does not contain our PC.  That is both
CPU expensive and it also "leaks" memory (until cu->dbg gets destroyed) even
more than formerly (formerly only one range got "leaked" on each
dwarf_getlocation call).

My idea was more to create dwarf_getlocations_internal without its last
getlocation call, use that from refactored dwarf_getlocation and create
current public dwarf_getlocations as a wrapper around
dwarf_getlocations_internal with that getlocation call.

But then one may argue it is no longer such a simplification.

And maybe also you do not find it as an issue as location lists are never too
long anyway.


Jan

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