Mark Wielaard e2cf85cd35 libdw: Make sure Ebl is always freed from cfi frame cache.
libdwfl sets the Dwfl_Module Ebl for the eh_cfi and dwarf_cfi cache to
save a bit of memory. It also calls ebl_closebackend on the ebl to free
it. The Dwarf_CFI never frees the Ebl in the cache, even when it opened
one itself. This means that if only libdw calls are used to access the
Dwarf_CFI the Ebl might be leaked.

Always destroy the Dwarf_CFI cache Ebl in __libdw_destroy_frame_cache.
And in __libdwfl_module_free clear the Dwarf_CFI Ebl if it is the
Dwfl_Module Ebl before calling dwarf_cfi_end and dwarf_end.

Signed-off-by: Mark Wielaard <mjw@redhat.com>
2015-11-27 14:41:51 +01:00
2015-10-15 18:38:29 +02:00
2015-10-06 17:50:10 -07:00
2015-10-06 17:50:10 -07:00
2015-10-26 13:52:31 +01:00
2015-10-16 13:28:03 +02:00
2015-10-26 13:52:31 +01:00
2015-10-26 13:52:31 +01:00
2015-07-29 18:18:23 +02:00
2009-01-10 18:17:09 -08:00
2015-10-26 13:52:31 +01:00
2015-10-26 13:52:31 +01:00
2013-08-21 10:41:12 +02:00
2005-07-26 05:00:05 +00:00
2015-10-15 18:38:29 +02:00
2005-07-26 05:00:05 +00:00
2009-01-10 18:17:09 -08:00

Fundamental design decision:

- the sizes of external and internal types are assumed to be the same.
  This leaves byte ordering aside.  While assuming this the code can be
  greatly simplified and speed increases.  Since no change violating this
  assumption is in sight this is believed to be a worthwhile optimization.

- the ABI of the backend modules is not guaranteed.  Really, no guarantee
  whatsoever.  We are enforcing this in the code.  The modules and their
  users must match.  No third-party EBL module are supported or allowed.
  The only reason there are separate modules is to not have the code for
  all architectures in all the binaries.

- although the public libraries (libasm, libdw) have a stable API and are
  backwards ABI compatible they, and the elfutils tools, do depend on each
  others internals, and on internals of libelf to provide their interfaces.
  So they should always be upgraded in lockstep when packaging the tools
  and libraries separately. For one example of how to do that, see the
  config/elfutils.spec.
S
Description
暂无描述
Readme 23 MiB
Languages
C 70.8%
Shell 22.6%
C++ 3.3%
Makefile 1.4%
M4 1%
Other 0.8%