summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index c054d24c..56838140 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -3164,6 +3164,7 @@ dwarf_query::add_probe_point(const string& funcname,
if (! bad)
{
+ sess.unwindsym_modules.insert (module);
probe = new dwarf_derived_probe(funcname, filename, line,
module, reloc_section, addr, reloc_addr, *this, scope_die);
results.push_back(probe);
@@ -3210,7 +3211,6 @@ dwarf_query::assess_dbinfo_reqt()
}
-
// The critical determining factor when interpreting a pattern
// string is, perhaps surprisingly: "presence of a lineno". The
// presence of a lineno changes the search strategy completely.
@@ -4751,6 +4751,7 @@ dwarf_builder::build(systemtap_session & sess,
q.statement_num_val, q.statement_num_val,
q, 0);
finished_results.push_back (p);
+ sess.unwindsym_modules.insert ("kernel");
return;
}
@@ -5379,6 +5380,9 @@ struct utrace_builder: public derived_probe_builder
string::size_type start_pos, end_pos;
string component;
+ // XXX: these checks should be done in terms of filesystem
+ // operations.
+
// Make sure it starts with '/'.
if (path[0] != '/')
throw semantic_error ("process path must start with a '/'",
@@ -5405,6 +5409,8 @@ struct utrace_builder: public derived_probe_builder
// Make sure it isn't relative.
else if (component == "." || component == "..")
throw semantic_error ("process path cannot be relative (and contain '.' or '..')", location->tok);
+
+ sess.unwindsym_modules.insert (path);
}
finished_results.push_back(new utrace_derived_probe(sess, base, location,