diff options
author | Dave Brolley <brolley@redhat.com> | 2009-10-13 11:55:11 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-10-13 11:55:11 -0400 |
commit | f990359bd63bd4fc21e600e71c6a513d5b5b2ccb (patch) | |
tree | 16fb7638f2089476b2994ec7d8b2131e4a7b0b69 /tapsets.cxx | |
parent | 8f6d8c2bd3e5c1d2881e2ebe1c7ad5deb389e581 (diff) | |
parent | ba9abf303e1bed196668f103b2a17c48e3df70aa (diff) | |
download | systemtap-steved-f990359bd63bd4fc21e600e71c6a513d5b5b2ccb.tar.gz systemtap-steved-f990359bd63bd4fc21e600e71c6a513d5b5b2ccb.tar.xz systemtap-steved-f990359bd63bd4fc21e600e71c6a513d5b5b2ccb.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index 290a54da..5182bdd4 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -3693,7 +3693,7 @@ sdt_query::record_semaphore (vector<derived_probe *> & results, unsigned start) if (dwfl_module_relocations (dw.module) > 0) dwfl_module_relocate_address (dw.module, &addr); for (unsigned i = start; i < results.size(); ++i) - sess.sdt_semaphore_addr.insert(make_pair(results[i], addr)); + results[i]->sdt_semaphore_addr = addr; } } @@ -3876,6 +3876,9 @@ dwarf_builder::build(systemtap_session & sess, { module_name = find_executable (module_name); // canonicalize it + if (sess.kernel_config["CONFIG_UTRACE"] != string("y")) + throw semantic_error ("process probes not available without kernel CONFIG_UTRACE"); + // user-space target; we use one dwflpp instance per module name // (= program or shared library) dw = get_user_dw(sess, module_name); @@ -4454,10 +4457,9 @@ uprobe_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->line() << " .pp=" << lex_cast_qstring (*p->sole_location()) << ","; s.op->line() << " .ph=&" << p->name << ","; - map<derived_probe*, Dwarf_Addr>::iterator its = s.sdt_semaphore_addr.find(p); - if (its != s.sdt_semaphore_addr.end()) + if (p->sdt_semaphore_addr != 0) s.op->line() << " .sdt_sem_address=(unsigned long)0x" - << hex << its->second << dec << "ULL,"; + << hex << p->sdt_semaphore_addr << dec << "ULL,"; if (p->has_return) s.op->line() << " .return_p=1,"; |