diff options
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index a405cef0..35428fcd 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, |