| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setup the pt_regs REG_IP to the actual breakpoint address before
entering a probe handler for [ku]probe[ret] (and restore it after
returning). This helps getting symbol resolution and backtraces
more correct and makes it more conform with other probe handlers
like the iutrace and profile timers that also provide pt_regs
(which untill now exhibited off-by-one errors while unwinding).
* tapsets.cxx (dwarf_derived_probe_group::emit_module_decls):
Setup REG_IP correctly before calling enter_kprobe_probe
and enter_kretprobe_probe, and restore afterwards.
(uprobe_derived_probe_group::emit_module_decls): Likewise for
enter_uprobe_probe and enter_uretprobe_probe.
(kprobe_derived_probe_group::emit_module_decls): Likewise for
enter_kprobe2_probe and enter_kretprobe2_probe.
* runtime/unwind/i386.h (arch_unw_init_frame_info): Initialize
info->call_frame to zero.
* runtime/unwind/x86_64.h (arch_unw_init_frame_info): Likewise.
|
|
|
|
|
| |
Dwarf probes are now printing their $target variables in -L, so we need
to handle more than just stap types in the regular expression.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* stap.1.in: Document that -w disables all warning messages.
* dwflpp.cxx (get_module_dwarf): Only output warning when session
suppress_warnings is not set.
* translate.cxx (dump_unwindsyms): Likewise.
(emit_symbol_data_done): Likewise.
* tapsets.cxx (query_module_symtab): Likewise.
(read_from_elf_file): Take systemtap_session, check suppress_warnings
before emitting warning.
(read_from_text_file): Likewise.
(get_symtab): Call read_from_elf_file and read_from_text_file with session.
|
|
|
|
| |
* testsuite/systemtap.exelib/ustack.tcl: Remove result_string.
|
|
|
|
|
|
|
|
|
| |
All $target variables and their C-types are now printed in -L mode.
* tapsets.cxx (uprobe_derived_probe::uprobe_derived_probe): Save the local
arguments while we still have the dwflpp open.
(uprobe_derived_probe::saveargs): New
(uprobe_derived_probe::printargs): New
|
|
|
|
|
|
|
|
|
| |
All $target variables and their C-types are now printed in -L mode.
* tapsets.cxx (dwarf_derived_probe::dwarf_derived_probe): Save the local
arguments while we still have the dwflpp open.
(dwarf_derived_probe::saveargs): New
(dwarf_derived_probe::printargs): New
|
|
|
|
|
|
|
|
|
| |
Rather than relying on 'unoptimized' to tell us that the listing mode
should print the variables too, this adds an explicit listing_mode_vars.
* session.h (systemtap_session): Add listing_mode_vars
* main.cxx (main): Set s.listing_mode_vars appropriately.
(printscript): Use the new flag for deciding whether to print locals
|
|
|
|
|
|
|
|
|
| |
This just refactors large chunks of visit_target_symbol into a couple of
smaller functions.
* tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol_context): New
(dwarf_var_expanding_visitor::visit_target_symbol_saved_return): New
(dwarf_var_expanding_visitor::visit_target_symbol): Call the new ones
|
|
|
|
|
|
| |
* tapset-utrace.cxx (visit_target_symbol_arg): Handle $$parms.
* testsuite/systemtap.base/utrace_p4.exp: Add test case.
* testsuite/systemtap.base/utrace_p5.exp: Ditto.
|
|
|
|
|
| |
* systemtap.base/crash.exp: Use command-line script instead of removed
script file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* runtime/transport/ring_buffer.c (struct _stp_iterator): Renamed from
_stp_ring_buffer_data.
(_stp_data_open_trace): Uses _stp_iterator.
(_stp_data_release_trace): Ditto.
(_stp_ring_buffer_empty_cpu): Ditto.
(_stp_ring_buffer_empty): Ditto.
(_stp_ring_buffer_consume): Ditto.
(_stp_tracing_wait_pipe): Ditto.
(_stp_peek_next_event): Ditto.
(_stp_find_next_event): Ditto.
(_stp_data_read_trace): Ditto.
(_stp_data_write_reserve): Ditto.
|
|
|
|
|
| |
* doc/SystemTap_Beginners_Guide/en-US/extras/stapprep.sh: Check whether
yumdownloader is already available and install yum-utils if not.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* grapher/Graph.hxx: New file; class for single graph display.
* grapher/Graph.cxx: New file.
* grapher/GraphData.hxx: Associate title and axis labels with graph
data and not a graph display.
* grapher/GraphWidget.hxx: Move graph-related members to Graph class.
* grapher/GraphWidget.cxx (getExtents, setExtents): Move to Graph
class
(on_expose_event): Move graph rendering to Graph.
(on_button_press_event): Delegate to Graph.
(on_motion_notify_event, on_scroll_event): Modify "active" graph.
* grapher/StapParser.cxx (findTaggedValue): New parsing helper
function.
(io_callback): Support new syntax where properties are attached to
graph data and not the entire graph.
* grapher/grapher.cxx (GrapherWindow): Don't set graph values.
* grapher/Makefile.am: Add Graph.cxx.
* testsuite/systemtap.examples/general/grapher.stp: New property syntax.
|
|
|
|
| |
* grapher/grapher.cxx (main): Fix problems with call to execlp.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* grapher/GraphData.hxx (GraphDataBase): new superclass for
GraphData. Split time data out as a separate vector.
(GraphData): Rewrite as template.
* grapher/GraphWidget.cxx (on_expose_event): Reflect GraphData
templatization. Handle events with string values.
* grapher/GraphWidget.hxx (GraphWidget): Keep pointers to
GraphDataBase objects instead of GraphData.
* grapher/StapParser.cxx (parseData): new member function
(ioCallback): Handle new discreet event
* grapher/StapParser.hxx (StapParser): keep pointers to GraphDataBase
objects instead of GraphData
* testsuite/systemtap.examples/general/grapher.stp: Display actual key
pressed for keyboard event
|
|
|
|
|
| |
* grapher/grapher.cxx (main): Start stap + script from program if supplied
as an argument.
|
|
|
|
|
| |
* grapher/grapher.cxx (GrapherWindow): New class.
(main): Instantiate GrapherWindow.
|
|
|
|
|
|
| |
* grapher/GraphData.hxx (CSVData): new class
* grapher/GraphData.cxx (commaSplit): new function
(ioCallback): handle CSV definition and data
|
|
|
|
|
|
| |
* grapher/StapParser.cxx: new file
* grapher/StapParser.hxx: new file
* grapher/grapher.cxx: Use external StapParser class.
|
|
|
|
|
| |
* grapher/GraphWidget.cxx (on_expose_event): Don't draw axis labels
that would overlap others.
|
|
|
|
| |
* testsuite/systemtap.examples/general/grapher.stp: Restore newlines.
|
|
|
|
|
|
|
|
| |
* dwflpp.cxx (iterate_over_srcfile_lines): Check the line range
and tolerate invalid line number for WILDCARD line type.
* testsuite/systemtap.base/bz6905.c: Test case.
* testsuite/systemtap.base/bz6905.exp: Ditto.
* testsuite/systemtap.base/bz6905.stp: Ditto.
|
|
|
|
|
| |
* tapsets.cxx (query_cu): When statement check fails and no line info
available, mention the CU had no line info.
|
|
|
|
|
|
|
|
|
|
|
|
| |
GNU gold depends on all libraries providing symbols being explicitly
linked in (PR 10238). And it is pedantically more correct indeed.
* Makefile.am (stap_LD_ADD): Add -lnspr4 when HAVE_NSS.
(staprun_LDADD): Likewise.
(stap_client_connect_LDADD): Add -lnss3 -lnspr4 -lplc4 when BUILD_SERVER.
(stap_server_connect_LDADD): Likewise.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
|
|
|
|
|
| |
* tapset-mark.cxx (visit_target_symbol_context): Add $$vars/$$parms.
* testsuite/systemtap.base/marker.exp : Test case.
|
|
|
|
|
| |
* dwflpp.cxx (get_cfa_ops): Only define cfa_nops if _ELFUTILS_PREREQ(0,142).
* loc2c-test.c (main): Likewise.
|
|
|
|
|
| |
* dwflpp.cxx (get_cfa_ops): Call dwarf_frame_cfa with cfa_nops size_t.
* loc2c-test.c (main): Likewise.
|
|
|
|
|
|
|
| |
* runtime/transport/ring_buffer.c (_stp_event_to_user): Added debug prints.
(_stp_ring_buffer_consume): New function.
(_stp_find_next_event): Avoid incrementing the buffer iterator here.
(_stp_data_write_commit): Added debug prints.
|
|
|
|
|
| |
* testsuite/systemtap.base/tracepoints.stp: Only print once, when enough hits,
or at the begin probe.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was a bad assumption in the probe_table initialization that the
dwflpp->module would be immediately valid. We should not assume that
dwflpp only has one module, or that any module is necessarily in focus.
Instead, I've created an sdt_query class which will call an
iterate_over_modules like the other dwarf probe types. For now this
means just a single module, but it will also open the door to iterating
over all linked libraries too, for example.
* dwflpp.cxx (dwflpp::setup_user): don't "save mod!" anymore
* tapsets.cxx (probe_table -> sdt_query): convert to a query-style
class, and also take over the task of iterating over the probes.
(dwarf_builder::build): leave the iteration to sdt_query
|
| |
|
|
|
|
| |
* tapset/task.stp (pid2task): Use find_get_pid for 2.6.31.
|
|
|
|
| |
systemtap.spec (post,preun): Call rmmod uprobes.
|
|
|
|
| |
* dwflpp.cxx (setup_user): Set module to mod.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the current monolithic tracepoint query module, a failure in any of
the discovered tracepoint headers means that you can't use any of the
others either. This patch creates a separate query module for each
header so they can pass or fail independently.
* buildrun.cxx (make_tracequery): take a single header name instead of
globbing for everything we can find.
* hash.cxx (find_tracequery_hash): name the header file we're hashing.
* tapsets.cxx (tracepoint_query::handle_query_func): make sure we don't
duplicate tracepoints found through different headers.
(tracepoint_builder::get_tracequery_module): get a header's module
(tracepoint_builder::init_dw): glob for all tracepoint headers, and
feed all their modules into dwflpp.
|
|
|
|
|
|
|
| |
The fact that a file _doesn't_ exist is significant, so adding such a
file to a computed hash should still influence the output.
* hash.cxx (hash::add_file): add bogus stat info for non-existent files
|
|
|
|
|
|
|
|
|
| |
This will be used to load tracepoint modules as a bunch of little query
modules into a single dwflpp.
* dwflpp.cxx (setup_user): take a vector instead of a single module
(dwflpp::dwflpp): form a vector in the singular case, and add a
variant that takes and passes through a vector of modules.
|
|
|
|
|
|
|
|
| |
* session.h (systemtap_session): remove tracequery_path
* hash.cxx (find_tracequery_hash, find_typequery_hash): return strings
* tapsets.cxx (dwarf_cast_expanding_visitor::filter_special_modules):
get the hashed path from the return value instead of a parameter
(tracepoint_builder::init_dw): ditto, and don't stuff it in session
|
|
|
|
|
| |
failures of compiling ipmib.stp and tcpmib.stp, rtable and dst fields are
deleted.
|
|
|
|
|
|
|
|
|
| |
* runtime/itrace.c (usr_itrace_init): Changed prototype to take a
task_struct instead of a pid.
* tapset-itrace.cxx (emit_module_decls): Updated usr_itrace_init() call.
* runtime/autoconf-find-task-pid.c: Removed, since only user_itrace_init()
was using it.
* buildrun.cxx (compile_pass): Removed autoconf-find-task-pid.c test.
|
|
|
|
|
|
| |
First check kprobe and utrace (did we arrive via stap?) then check
if probe arg matches mark("NAME")
* sdt.h (STAP_PROBE?_): Use STAP_GUARD for stap check, not gettid.
|
|
|
|
|
|
| |
* tapset/nfs_proc.stp: Change '?' notation to "!".
* tapset/nfsd.stp: Ditto.
* tapset/scsi.stp: Ditto.
|
| |
|
| |
|
| |
|
|
|
|
| |
* sym.c (_stp_usymbol_print): Ditto.
|
| |
|
|
|
|
| |
* sym.c (_stp_symbol_print): (Redundantly) initialize locals.
|
|
|
|
|
| |
* AUTHORS: Add David J. Wilder and Jeff Moyer.
* .mailmap: Add a real name for <wjhuang@localhost.localdomain>
|