From 038c38c6119e29189be83c3a214c635c0d02ee58 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 6 Oct 2009 20:01:13 -0700 Subject: Remove the global derived_probe->semaphore map Instead just make the semaphore address a member of derived_probe. * session.h (systemtap_session): Remove the map sdt_semaphore_addr. * elaborate.h (derived_probe): Add sdt_semaphore_addr directly. * tapsets.cxx (sdt_query::record_semaphore): Write the addr directly. (uprobe_derived_probe_group::emit_module_decls): Read it directly. * tapset-utrace.cxx (utrace_derived_probe_group::emit_probe_decl): Ditto --- tapset-utrace.cxx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'tapset-utrace.cxx') diff --git a/tapset-utrace.cxx b/tapset-utrace.cxx index b13dc290..d2ce9dd7 100644 --- a/tapset-utrace.cxx +++ b/tapset-utrace.cxx @@ -717,12 +717,9 @@ utrace_derived_probe_group::emit_probe_decl (systemtap_session& s, } s.op->line() << " .engine_attached=0,"; - map::iterator its = s.sdt_semaphore_addr.find(p); - if (its == s.sdt_semaphore_addr.end()) - s.op->line() << " .sdt_sem_address=(unsigned long)0x0,"; - else + 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,"; s.op->line() << " .tsk=0,"; s.op->line() << " },"; -- cgit From e34d5d1388d3c7817313685e3f7424ffc158474f Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 8 Oct 2009 17:36:36 -0400 Subject: PR10746: improve error message on utrace-less kernels * tapset-itrace.exp (itrace_derived_probe ctor): Fail if !CONFIG_UTRACE. * tapset-utrace.exp (utrace_derived_probe ctor): Fail if !CONFIG_UTRACE. * tapsets.cxx (dwarf_builder::build): Fail process.* if !CONFIG_UTRACE. * testsuite/semko/utrace.stp: New test. --- tapset-utrace.cxx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tapset-utrace.cxx') diff --git a/tapset-utrace.cxx b/tapset-utrace.cxx index d2ce9dd7..4e98fbf6 100644 --- a/tapset-utrace.cxx +++ b/tapset-utrace.cxx @@ -118,6 +118,9 @@ utrace_derived_probe::utrace_derived_probe (systemtap_session &s, has_path(hp), path(pn), pid(pd), flags(f), target_symbol_seen(false) { + if (s.kernel_config["CONFIG_UTRACE"] != string("y")) + throw semantic_error ("process probes not available without kernel CONFIG_UTRACE"); + // Expand local variables in the probe body utrace_var_expanding_visitor v (s, l, name, flags); v.replace (this->body); -- cgit