summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
authorjistone <jistone>2006-05-04 00:01:24 +0000
committerjistone <jistone>2006-05-04 00:01:24 +0000
commitfd64709f63938fcc8e82c0c7663cad2289f09211 (patch)
tree9066033340eb5337a982e4a5c126d5ca69eab83d /tapsets.cxx
parentcbc8c0f2c57907f81282fbfa6f82de0158332f5e (diff)
downloadsystemtap-steved-fd64709f63938fcc8e82c0c7663cad2289f09211.tar.gz
systemtap-steved-fd64709f63938fcc8e82c0c7663cad2289f09211.tar.xz
systemtap-steved-fd64709f63938fcc8e82c0c7663cad2289f09211.zip
2006-05-03 Josh Stone <joshua.i.stone@intel.com>
PR 2506 * tapsets.cxx (dwarf_query::blacklisted_p): skip probes in .exit.*
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 278cc60c..c23b8233 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -1912,7 +1912,7 @@ dwarf_query::blacklisted_p(string const & funcname,
Dwarf_Die *scope_die,
Dwarf_Addr addr)
{
- // Check whether the given address points into an .init section,
+ // Check whether the given address points into an .init/.exit section,
// which will have been unmapped by the kernel by the time we get to
// insert the probe. In this case, just ignore this call.
if (dwfl_module_relocations (dw.module) > 0)
@@ -1921,7 +1921,8 @@ dwarf_query::blacklisted_p(string const & funcname,
Dwarf_Addr rel_addr = addr;
int idx = dwfl_module_relocate_address (dw.module, &rel_addr);
const char *name = dwfl_module_relocation_info (dw.module, idx, NULL);
- if (name && strncmp (name, ".init.", 6) == 0)
+ if (name && ((strncmp (name, ".init.", 6) == 0) ||
+ (strncmp (name, ".exit.", 6) == 0)))
{
if (sess.verbose>1)
clog << "skipping function '" << funcname << "' base 0x"
@@ -1956,7 +1957,8 @@ dwarf_query::blacklisted_p(string const & funcname,
// check for section name
const char* name = elf_strptr (elf, shstrndx, shdr->sh_name);
- if (name && strncmp (name, ".init.", 6) == 0)
+ if (name && ((strncmp (name, ".init.", 6) == 0) ||
+ (strncmp (name, ".exit.", 6) == 0)))
{
if (sess.verbose>1)
clog << "skipping function '" << funcname << "' base 0x"