summaryrefslogtreecommitdiffstats
path: root/dwflpp.cxx
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2009-12-20 14:34:31 -0500
committerFrank Ch. Eigler <fche@elastic.org>2009-12-20 14:34:31 -0500
commit48390b53f76b1497b5ce1408f3fb83c6581f9ecf (patch)
tree64d96e9f479e6c25fcc6702b69b2417083876bb9 /dwflpp.cxx
parent028e1bde11b9644d1ac62f0a1a2188cf8def234a (diff)
downloadsystemtap-steved-48390b53f76b1497b5ce1408f3fb83c6581f9ecf.tar.gz
systemtap-steved-48390b53f76b1497b5ce1408f3fb83c6581f9ecf.tar.xz
systemtap-steved-48390b53f76b1497b5ce1408f3fb83c6581f9ecf.zip
dwarf probes: skip inlined instances with null (buggy) entrypc
* dwflpp.cxx (resolve_prologue_endings): Skip entrypc=0.
Diffstat (limited to 'dwflpp.cxx')
-rw-r--r--dwflpp.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/dwflpp.cxx b/dwflpp.cxx
index 0e8a352d..d3cecc44 100644
--- a/dwflpp.cxx
+++ b/dwflpp.cxx
@@ -1282,6 +1282,16 @@ dwflpp::resolve_prologue_endings (func_info_map_t & funcs)
continue;
}
+ if (entrypc == 0)
+ {
+ if (sess.verbose > 2)
+ clog << "null entrypc dwarf line record for function '"
+ << it->name << "'\n";
+ // This is probably an inlined function. We'll skip this instance;
+ // it is messed up.
+ continue;
+ }
+
if (sess.verbose>2)
clog << "prologue searching function '" << it->name << "'"
<< " 0x" << hex << entrypc << "-0x" << highpc << dec