summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/Tapset_Reference_Guide/README33
-rw-r--r--dwflpp.cxx2
-rw-r--r--runtime/runtime.h1
-rw-r--r--runtime/transport/transport.c1
-rw-r--r--tapsets.cxx15
-rw-r--r--testsuite/systemtap.base/static_uprobes.exp13
6 files changed, 38 insertions, 27 deletions
diff --git a/doc/Tapset_Reference_Guide/README b/doc/Tapset_Reference_Guide/README
index 1f27abe7..4ef2333a 100644
--- a/doc/Tapset_Reference_Guide/README
+++ b/doc/Tapset_Reference_Guide/README
@@ -1,17 +1,30 @@
-This is an automated source build of the SystemTap_Tapset_Reference Guide,
-used to build it in Publican.
+The Publican Tapset Reference Guide is build from files generated
+during the build of SystemTap when it is configured with
+"--enable-refdocs".
-To build the DocBook XML source (required by Publican), run:
+Assuming that SystemTap was built in /home/wcohen/systemtap/build, the
+file needed to generate the Publican Tapset Reference Guide would be
+/home/wcohen/systemtap/build/doc/SystemTap_Tapset_Reference/tapsets.xml.
- bash publicanize.sh
+To generate the required DocBook XML file of the tapsets.xml file and build
+the Publican Tapset Reference Guide from this directory:
-This will copy and clean the XML source of SystemTap_Tapset_Reference
-created by kernel-doc. You can now build it in pdf, html, etc using
-Publican.
+export BUILD=/home/wcohen/systemtap/build
+./publicanize.sh -i=$BUILD/doc/SystemTap_Tapset_Reference/tapsets.xml
-The main source of the Language Reference Guide is:
+This will copy and clean the XML source of SystemTap_Tapset_Reference
+created by kernel-doc and place the resulting file in
+./en-US/Tapset_Reference_Guide.xml. You can now build it in pdf, html,
+etc using Publican. To make the Publican pdf file:
- ../SystemTap_Tapset_Reference/tapsets.xml
+make pdf-en-US
+
+The resulting output file will be
+./tmp/en-US/pdf/Tapset_Reference_Guide.pdf
+
+The main source of the Language Reference Guide is in the build directory:
+
+ $BUILD/doc/SystemTap_Tapset_Reference/tapsets.xml
This main source is generated by kernel-doc when you run 'make' in the
main git tree. The tapset documentation inside is collected from all
@@ -32,4 +45,4 @@ context.stp, context-symbols, and all the other tapset files are located in:
All tapset documentation should be done inside their respective tapset files.
For more information about this project, refer to:
- http://sourceware.org/systemtap/wiki/ProjectTapsetReferenceGuide \ No newline at end of file
+ http://sourceware.org/systemtap/wiki/ProjectTapsetReferenceGuide
diff --git a/dwflpp.cxx b/dwflpp.cxx
index 74294384..e01c6974 100644
--- a/dwflpp.cxx
+++ b/dwflpp.cxx
@@ -2366,7 +2366,7 @@ dwflpp::relocate_address(Dwarf_Addr addr,
{
blacklist_section = get_blacklist_section(addr);
reloc_section = ".dynamic";
- reloc_addr = addr;
+ reloc_addr += module_bias; // PR10273
}
}
else
diff --git a/runtime/runtime.h b/runtime/runtime.h
index c2e927cc..9881acb7 100644
--- a/runtime/runtime.h
+++ b/runtime/runtime.h
@@ -88,6 +88,7 @@ static struct
#include "copy.c"
#include "regs.c"
#include "regs-ia64.c"
+#include "time.c"
#include "task_finder.c"
diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
index 1ab49ae2..318c62f1 100644
--- a/runtime/transport/transport.c
+++ b/runtime/transport/transport.c
@@ -17,7 +17,6 @@
#include <linux/delay.h>
#include <linux/namei.h>
#include "transport.h"
-#include "time.c"
#include "../mempool.c"
#include "symbols.c"
diff --git a/tapsets.cxx b/tapsets.cxx
index 0efb9fbc..2c5e11bc 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -3464,7 +3464,7 @@ dwarf_builder::build(systemtap_session & sess,
<< hex << probe_table.probe_arg << dec << endl;
// Now expand the local variables in the probe body
- sdt_var_expanding_visitor svv (module_name, probe_table.mark_name,
+ sdt_var_expanding_visitor svv (module_name, probe_table.probe_name,
probe_table.probe_arg, false);
new_base->body = svv.require (new_base->body);
@@ -3487,9 +3487,9 @@ dwarf_builder::build(systemtap_session & sess,
do
{
set<string>::iterator pb;
- pb = probes_handled.find(probe_table.mark_name);
+ pb = probes_handled.find(probe_table.probe_name);
if (pb == probes_handled.end())
- probes_handled.insert (probe_table.mark_name);
+ probes_handled.insert (probe_table.probe_name);
else
return;
@@ -3504,11 +3504,18 @@ dwarf_builder::build(systemtap_session & sess,
probe_table.convert_probe(new_base);
// Expand the local variables in the probe body
- sdt_var_expanding_visitor svv (module_name, probe_table.mark_name,
+ sdt_var_expanding_visitor svv (module_name, probe_table.probe_name,
probe_table.probe_arg, true);
new_base->body = svv.require (new_base->body);
probe_table.convert_location(new_base, new_location);
derive_probes(sess, new_base, finished_results);
+ if (sess.listing_mode)
+ {
+ finished_results.back()->locations[0]->components[0]->functor = TOK_FUNCTION;
+ finished_results.back()->locations[0]->components[0]->arg = new literal_string (module_name);
+ finished_results.back()->locations[0]->components[1]->functor = TOK_MARK;
+ finished_results.back()->locations[0]->components[1]->arg = new literal_string (probe_table.probe_name.c_str());
+ }
}
while (probe_table.get_next_probe());
return;
diff --git a/testsuite/systemtap.base/static_uprobes.exp b/testsuite/systemtap.base/static_uprobes.exp
index 41dc3ec0..6a597646 100644
--- a/testsuite/systemtap.base/static_uprobes.exp
+++ b/testsuite/systemtap.base/static_uprobes.exp
@@ -165,12 +165,7 @@ wait
if {$ok == 5} {
pass "$test $pbtype_mssg"
} else {
- if { $pbtype_mssg == "uprobe" } {
- fail "$test ($ok) $pbtype_mssg"
- } else {
- # probe fires multiple times
- xfail "$test ($ok) $pbtype_mssg"
- }
+ fail "$test ($ok) $pbtype_mssg"
}
# Test passing various C types to .mark probes
@@ -225,11 +220,7 @@ expect {
if { $ok == 45 } {
pass "$test wildcard $pbtype_mssg"
} else {
- if { $pbtype_mssg == "uprobe" } {
- fail "$test wildcard ($ok) $pbtype_mssg"
- } else {
- xfail "$test wildcard ($ok) $pbtype_mssg"
- }
+ fail "$test wildcard ($ok) $pbtype_mssg"
}
# for {set i 0}