summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrikar Dronamraju <srikar@linux.vnet.ibm.com>2008-05-30 13:53:59 +0530
committerSrikar Dronamraju <srikar@linux.vnet.ibm.com>2008-05-30 13:53:59 +0530
commit921d61030221bc5ff27f8d63d3fa30e93f659484 (patch)
treec4df636c217e2037fcc844a8d86e17505fe5c972
parent974665688b988acc952c9a09c55079844c2bbc63 (diff)
downloadsystemtap-steved-921d61030221bc5ff27f8d63d3fa30e93f659484.tar.gz
systemtap-steved-921d61030221bc5ff27f8d63d3fa30e93f659484.tar.xz
systemtap-steved-921d61030221bc5ff27f8d63d3fa30e93f659484.zip
PR 6562, Modify SYSTEMTAP_DEBUGINFO_PATH behaviour.
-rw-r--r--ChangeLog8
-rw-r--r--stap.1.in6
-rw-r--r--tapsets.cxx4
-rw-r--r--testsuite/systemtap.base/debugpath.exp3
-rw-r--r--translate.cxx4
5 files changed, 18 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 78268d82..963ad1c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-05-30 Srinivasa DS <srinivasa@in.ibm.com>
+ PR 6562
+ * tapsets.cxx, translate.cxx: modified one argument for
+ dwfl_linux_kernel_report_offline().
+ * testsuite/systemtap.base/debugpath.exp: Modified testsuite for new
+ SYSTEMTAP_DEBUGINFO_PATH behaviour.
+ * stap.1.in: Modified manpage for new SYSTEMTAP_DEBUGINFO_PATH behaviour.
+
2008-05-29 Jim Keniston <jkenisto@us.ibm.com>
PR 6582
diff --git a/stap.1.in b/stap.1.in
index d4458850..3d4940d6 100644
--- a/stap.1.in
+++ b/stap.1.in
@@ -1040,10 +1040,8 @@ RPM, unless overridden by the
.I SYSTEMTAP_DEBUGINFO_PATH
environment variable. The default value for this variable is
.IR \-:.debug:/usr/lib/debug .
-This path is interpreted by elfutils as a list of base directories of
-which various subdirectories will be searched. The \- at the front
-means to skip CRC matching for separated debug objects and is a small
-performance win if no possible corruption is suspected.
+Elfutils searches vmlinux in this path and it interprets the path as a base
+directory of which various subdirectories will be searched for finding modules.
.TP
@prefix@/bin/staprun
The auxiliary program supervising module loading, interaction, and
diff --git a/tapsets.cxx b/tapsets.cxx
index 151a1c45..f20f184e 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -903,6 +903,8 @@ struct dwflpp
static char *debuginfo_path = (debuginfo_env_arr ?
debuginfo_env_arr : debuginfo_path_arr);
+ static const char *debug_path = (debuginfo_env_arr ?
+ debuginfo_env_arr : sess.kernel_release.c_str());
static const Dwfl_Callbacks proc_callbacks =
{
@@ -936,7 +938,7 @@ struct dwflpp
else
callback = NULL;
int rc = dwfl_linux_kernel_report_offline (dwfl,
- sess.kernel_release.c_str(),
+ debug_path,
/* selection predicate */
callback);
if (debuginfo_needed)
diff --git a/testsuite/systemtap.base/debugpath.exp b/testsuite/systemtap.base/debugpath.exp
index b6e5674b..9c42295d 100644
--- a/testsuite/systemtap.base/debugpath.exp
+++ b/testsuite/systemtap.base/debugpath.exp
@@ -10,7 +10,8 @@ expect {
wait
set test "debugpath-good"
-spawn env SYSTEMTAP_DEBUGINFO_PATH=:/usr/lib/debug:build stap -e "probe kernel.function(\"sys_open\") {}" -p2
+set uname [exec /bin/uname -r]
+spawn env SYSTEMTAP_DEBUGINFO_PATH=/lib/modules/$uname/build stap -e "probe kernel.function(\"sys_open\") {}" -p2
expect {
-re {kernel.function.*pc=} { pass $test }
timeout { fail "$test (timeout2)" }
diff --git a/translate.cxx b/translate.cxx
index 58fa9182..7770db09 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -4407,6 +4407,8 @@ emit_symbol_data_from_debuginfo(systemtap_session& s, ofstream& kallsyms_out)
static char *debuginfo_path = (debuginfo_env_arr ?
debuginfo_env_arr : debuginfo_path_arr);
+ static const char *debug_path = (debuginfo_env_arr ?
+ debuginfo_env_arr : s.kernel_release.c_str());
static const Dwfl_Callbacks kernel_callbacks =
{
@@ -4422,7 +4424,7 @@ emit_symbol_data_from_debuginfo(systemtap_session& s, ofstream& kallsyms_out)
dwfl_report_begin (dwfl);
int rc = dwfl_linux_kernel_report_offline (dwfl,
- s.kernel_release.c_str(),
+ debug_path,
kernel_filter);
dwfl_report_end (dwfl, NULL, NULL);
if (rc < 0)