diff options
author | Srikar Dronamraju <srikar@linux.vnet.ibm.com> | 2008-05-30 13:53:59 +0530 |
---|---|---|
committer | Srikar Dronamraju <srikar@linux.vnet.ibm.com> | 2008-05-30 13:53:59 +0530 |
commit | 921d61030221bc5ff27f8d63d3fa30e93f659484 (patch) | |
tree | c4df636c217e2037fcc844a8d86e17505fe5c972 | |
parent | 974665688b988acc952c9a09c55079844c2bbc63 (diff) | |
download | systemtap-steved-921d61030221bc5ff27f8d63d3fa30e93f659484.tar.gz systemtap-steved-921d61030221bc5ff27f8d63d3fa30e93f659484.tar.xz systemtap-steved-921d61030221bc5ff27f8d63d3fa30e93f659484.zip |
PR 6562, Modify SYSTEMTAP_DEBUGINFO_PATH behaviour.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | stap.1.in | 6 | ||||
-rw-r--r-- | tapsets.cxx | 4 | ||||
-rw-r--r-- | testsuite/systemtap.base/debugpath.exp | 3 | ||||
-rw-r--r-- | translate.cxx | 4 |
5 files changed, 18 insertions, 7 deletions
@@ -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 @@ -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) |