This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: [PATCH] libdw: Add new function dwarf_getlocations.
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 04 Sep 2013 14:14:37 +0200
- Subject: 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