summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx13
1 files changed, 4 insertions, 9 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 308cef1f..85505084 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);
@@ -4752,7 +4747,7 @@ void
dwarf_derived_probe::emit_probe_local_init(translator_output * o)
{
// emit bsp cache setup
- o->newline() << "bspcache(c->unwaddr, c->regs, c->probe_point);";
+ o->newline() << "bspcache(c->unwaddr, c->regs);";
}
// ------------------------------------------------------------------------
@@ -5932,7 +5927,7 @@ void
utrace_var_expanding_copy_visitor::visit_target_symbol_arg (target_symbol* e)
{
string argnum_s = e->base_name.substr(4,e->base_name.length()-4);
- int argnum = atoi (argnum_s.c_str());
+ int argnum = lex_cast<int>(argnum_s);
if (flags != UDPF_SYSCALL)
throw semantic_error ("only \"process(PATH_OR_PID).syscall\" support $argN.", e->tok);