summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--tapsets.cxx9
2 files changed, 9 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 2329f1c0..ce4b3844 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-09-11 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 6871.
+ * tapsets.cxx (query_cu): Search for prologues for user-space probes.
+ (query_func_info): Use prologue_end if available; silently back down
+ to entrypc probing if needed.
+
2008-09-10 Josh Stone <joshua.i.stone@intel.com>
* main.cxx (printscript): Ensure no variables are printed in probe lists
diff --git a/tapsets.cxx b/tapsets.cxx
index 308cef1f..4d47dca1 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -3458,13 +3458,8 @@ query_func_info (Dwarf_Addr entrypc,
}
else
{
- if (q->sess.prologue_searching
- && !q->has_statement_str && !q->has_statement_num
- && !q->sess.ignore_vmlinux && !q->sess.ignore_dwarf) // PR 2608
+ if (fi.prologue_end != 0)
{
- if (fi.prologue_end == 0)
- throw semantic_error("could not find prologue-end "
- "for probed function '" + fi.name + "'");
query_statement (fi.name, fi.decl_file, fi.decl_line,
&fi.die, fi.prologue_end, q);
}
@@ -3718,7 +3713,7 @@ query_cu (Dwarf_Die * cudie, void * arg)
if (rc != DWARF_CB_OK)
q->query_done = true;
- if (q->sess.prologue_searching
+ if ((q->sess.prologue_searching || q->has_process) // PR 6871
&& !q->has_statement_str && !q->has_statement_num) // PR 2608
if (! q->filtered_functions.empty())
q->dw.resolve_prologue_endings (q->filtered_functions);