| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| | |
The automatic documentation extraction doesn't allow blank lines between the
the comment and the actual code. Removed the problem blank line to allow
the information to be extracted for the SystemTap Tapset Reference Manual.
|
| |\ |
|
| | |\ |
|
| | |\ \ |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | |_|/
| |/| | |
|
| | |/
| |/| |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Turns out that it breaks on kernels that don't have utrace.
* runtime/runtime.h : Don't include uprobes.h
* runtime/stack.c: Include uprobes.h
* runtime/stack-i386.c: Check if uprobes is included at all.
* runtime/stack-x86_64.c: ditto
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): put
uprobes.h include back in.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
* translate.cxx (emit_function): Fixed MAXNESTING test to not allow too
deep recursion.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This only prints symbol+offset, or an address if the symbol isn't
known.
* runtime/runtime.h (SYM_VERBOSE_NO, SYM_VERBOSE_FULL,
SYM_VERBOSE_BRIEF): new constants
* runtime/stack.c (_stp_stack_print): support brief format
* runtime/sym.c (_stp_func_print): ditto
* tapset/ucontext-unwind.stp (print_ubacktrace_brief): new function
* testsuite/systemtap.context/fib.c: new test program
* testsuite/systemtap.context/fib.stp: new test
* testsuite/systemtap.context/fib.exp: new test
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Only works in uretprobes for the moment.
* runtime/stack-x86_64.c (__stp_stack_print): Rewrite trampoline PC
addresses if necessary.
* runtime/stack-i386.c (__stp_stack_print): ditto
* runtime/stack-arm.c (__stp_stack_print): Add extra argument
* runtime/stack-ppc.c (__stp_stack_print): ditto
* runtime/stack-s390.c (__stp_stack_print): ditto
* runtime/stack.c (_stap_stack_print): call __stp_stack_print with
uretprobe_instance.
* testsuite/systemtap.context/uprobe_backtrace.stp: new test
|
|/ /
| |
| |
| |
| |
| | |
return address
* runtime/uprobes2/uprobes.c (uprobe_get_pc): new function
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's easily available in kretprobes and uretprobes and is consistent
with the rest of the program state.
* translate.cxx (emit_common_header) : add uretprobe_instance to context.
* tapsets.cxx (common_probe_entryfn_prologue): Initialize ri in
context to 0.
(dwarf_derived_probe_group::emit_module_decls): Change IP to return
address in kretprobes.
(uprobe_derived_probe_group::emit_module_decls): enter_uretprobe_probe:
set ri (uretprobe_instance) in context. Change IP to return
address in uretprobes. Don't emit uprobe include and #define
* runtime/runtime.h : Add includes and #define for uprobes.
* runtime/stack.c (_stp_stack_print, _stp_stack_snprint): Add extra
argument for uretprobe_instance.
* tapset/context-unwind.stp (print_backtrace, backtrace): Pass NULL
for uretprobe_instance to _stp_stack_print.
* tapset/ucontext-unwind.stp (print_ubacktrace, ubacktrace): pass
uretprobe_instance to _stp_stack_print
* testsuite/systemtap.context/uprobe_uaddr.exp : new test for uaddr in
function probes
* testsuite/systemtap.context/uprobe_uaddr.stp : new file
|
|/
|
|
|
| |
tapsets.cxx (sdt_query::handle_query_module): Improve trace handling.
(sdt_query::convert_location): Create new component instead of reusing old.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* runtime/alloc.c (_stp_kmalloc): Fixed compilation when DEBUG_MEM is
defined. Improved allocated memory tracking.
(_stp_kzalloc): Ditto.
(_stp_vmalloc): Ditto.
(_stp_alloc_percpu): Ditto.
(_stp_kmalloc_node): Ditto.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
This probably means that build-id will not be loaded at all and
happens for example with ARM kernel.
See also: http://sources.redhat.com/ml/systemtap/2009-q4/msg00574.html
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It does not exist in recent kernels.
Use regs->ARM_cpsr instead, this should work with all versions
of linux found in git repo (versions >=2.6.12-rc2). Difference
between condition_codes() and regs->ARM_cpsr should not matter
for systemtap.
|
| |
| |
| |
| |
| |
| |
| |
| | |
mysql.exp: Use env(SYSTEMTAP_TESTAPPS).
(mysqlrelease): Update and check for download failure.
postgres.exp: Use env(SYSTEMTAP_TESTAPPS).
stap-tcl.stp: Use .library("library").mark("mark").
tcl.exp: Likewise.
|
| |
| |
| |
| | |
* runtime/alloc.c (_stp_kmalloc): Move var decl back to top.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* grapher/StapParser.cxx (StapParser::disconnect): new function
* grapher/StapParser.hxx (StapProcess::StapProcess): initialize argv to 0
* grapher/grapher.cxx (StapLauncher::setArgs): Set argv to 0
(StapLauncher launch, launchUsingParser): Refactor launch(),
extracting function a that (re)launches a stap process using an
existing parser.
(StapLauncher::onChildDied): call disconnect() on dead parser.
(GrapherWindow::_graphicalLauncher, setGraphicalLauncher): delete
member, replacing with...
(graphicalLauncher): new variable
(ProcModelColumns): Store parser object in the list model instead of
just a StapProcess object.
(ProcWindow::onRestart): new function
(ProcWindow::refresh): Preserve the list selection when the process
list is refreshed.
(ProcWindow::onSelectionChanged): Manage the restart button's state.
|
| |
| |
| |
| |
| |
| |
| | |
DEBUG_MEM can & does evoke locking timeouts.
* runtime/alloc.c (*): Track __stp_allocated_memory regardless
of DEBUG_MEM.
|
| |
| |
| |
| |
| | |
* runtime/alloc.c: Define DEBUG_MEM.
* runtime/print.c (_stp_print_kernel_info): Reformat/rescale mem values.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* loc2c.c (stack_slot_type): New function.
(translate): Use it in place of STACK_TYPE and UTYPE macros.
(emit_loc_address, emit_loc_value, c_emit_location): Likewise.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In commit 98c783852039061db8c1611742660aaded0eab77 ("Use proper types
for do_div") I imprudently changed some variables to an unsigned type
while in some places the code actually relies on a sign.
So, let's be a bit smarter now and use temporary variables.
Reported-by: Wenji Huang <wenji.huang@oracle.com>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* runtime/addr-map.c (add_bad_addr_entry): Uses systemtap memory
allocation/deallocation wrappers.
* runtime/itrace.c (create_itrace_info): Ditto.
(remove_usr_itrace_info): Ditto.
|
| | |
| | |
| | |
| | |
| | |
| | | |
sdt.h (STAP_PROBE_ADDR): Add 32 bit big endian case.
(STAP_PROBE_DATA_): Use .balign
tapsets.cxx (sdt_query::get_next_probe): Stop if there is no probe name.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was the original way to do graphing and had bitrotted some.
* grapher/StapParser.cxx (initIO): new catchHUP argument
(ioCallback): Only disconnect signals, etc. on IN_HUP if catchHUP is
true.
(errIoCallback): Write error messages to stderr, not stdout.
* grapher/grapher.cxx (StapLauncher::launch): Don't catchHUP on our
stap process children.
(ProcWindow::refresh): Display something reasonable for the stap
"process" that is feeding stdin.
(main): Use StapParser::initIO to initialize parser reading from
stdin.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The process arguments are displayed, and the "kill" button is
insensitive when a process is dead or nothing is selected.
* grapher/grapher.cxx (ProcWindow _killButton, _restartButton,
_stapArgsLabel, _scriptArgsLabel): new members
(ProcWindow::ProcWindow): hook 'em up
(ProcWindow::onSelectionChanged): Enable / disable kill button and
display process arguments.
* grapher/processwindow.glade: Replace bizzare handle window with a
horizontal pane. Tweak various widget sizes.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The signal handler now calls waitpid() and writes the pid and status
to its pipe.
* grapher.cxx (ChildInfo): new class
(handleChild): wait for zombies and write their status down the
pipe.
(ChildDeathReader::ioCallback): Read dead child's pid from signal
handler pipe and emit signal.
(ChildDeathReader::reap): delete
(ChildDeathReader::Callback): delete
(StapLauncher::StapLauncher): Connect to childDied signal.
(StapLauncher setWinParams, reap, cleanUp): delete
(onChildDied): new function that updates the parsers list when a
child dies.
(GrapherWindow): Remove ChildDeathReader::Callback base class
(GrapherWindow::onParserListChanged): New function; exits if program
is quitting and no parsers are left.
(on_menu_file_quit): Kill all children; don't hide (and exit) unless
there are no parsers.
(main): Don't do any cleanup after Gtk loop exits.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also, the "kill" button now works.
* grapher/StapParser.hxx (_ioConnection, _errIoConnection): new
members for sigc connections.
(initIo): New function
(parsers, parserListChangedSignal): new variables
* grapher/StapParser.cxx (ioCallback): disconnect signals when child
dies
(initIo): new function
* grapher/grapher.cxx (StapLauncher): eliminate death callback in
favor of childDied signal. Use global parsers list
(ProcWindow::_listSelection): new member
(ProcWindow::show, hide, onParserListChanged, onSelectionChanged,
onKill): new functions
(ProcWindow::ProcWindow): Set up cell renderer for status icon
* grapher/processwindow.glade: labels for display script and stap arguments
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
tapset-utrace.cxx (TOK_LIBRARY): New.
(utrace_derived_probe::utrace_derived_probe): Add library and has_library.
(utrace_builder::build): Handle library.
(utrace_derived_probe_group::emit_probe_decl): Add sdt_sem_offset to
emitted stap_utrace_probes. Add stap_task_finder_target
mmap_callback for handling shared library. Handle sdt_sem_offset in
emitted_stp_utrace_probe_cb. Add stap_utrace_mmap_found.
(register_tapset_utrace): Handle .library
tapset-utrace.cxx (TOK_LIBRARY): New.
(base_query::base_query): Add path and has_library.
(dwarf_derived_probe::dwarf_derived_probe) Likewise.
(dwarf_derived_probe::register_patterns): Handle .library
(sdt_query::convert_location): Likewise.
(dwarf_builder::build): Likewise.
(uprobe_derived_probe_group::emit_module_decls): Emit
sdt_sem_address. Add sdt_sem_offset to emitted stap_uprobe_spec.
Add offset and vm_flags to signature of stap_uprobe_change_plus, and
handle sdt_sem_offset. Allow writeable segments in emitted
stap_uprobe_mmap_found.
sdt_misc.exp: Test .library
util.cxx (find_executable): Add env_path to sig and use it in getenv.
util.h (find_executable): Likewise. Make "PATH" the default.
dtrace.in (provider): Turn on semaphores.
sdt.h: Likewise.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit b2ea60606801aa9bf243f22318ac4bd8a25094fe.
* main.cxx (checkOptions): Remove unprivileged mode module name check.
* testsuite/parseko/cmdline05.stp: Delete unneeded testcase.
* testsuite/parseok/cmdline03.stp: Ditto.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
dtrace -I is used to pass through include paths to cpp when run.
Thanks to David Malcolm <dmalcolm@redhat.com> for python coding and testing.
* dtrace.in: Add -I support.
* testsuite/systemtap.base/dtrace.exp: Add testcases for -C -I and -G -I.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* main.cxx (checkOptions): If in unprivileged mode, make sure module name
starts with 'stap_'.
* testsuite/parseko/cmdline05.stp: New testcase.
* testsuite/parseok/cmdline03.stp: New testcase.
|
| | |
| | |
| | |
| | |
| | | |
* testsuite/lib/systemtap.exp (shutdown_server): Only remove the temporary
stap script if it exists.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The names of active scripts are displayed in a list; mock buttons
suggest being able to stop and restart them.
* grapher/processwindow.glade: new file
* grapher/Makefile.am: add processwindow.glade to installed files
* grapher/StapParser.hxx (StapProcess): new class
(StapParser): factor out members that are now in StapProcess
(ioCallback): Use the new childDied signal instead of aborting the
whole grapher when a child dies.
* grapher/grapher.cxx (ProcModelColumns, ProcWindow): classes for
displaying stap process window.
(GrapherWindow::on_menu_proc_window): new function
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also, add a sigc signal for broadcasting data set changes.
* grapher/GraphData.hxx (GraphDataList) new typedef
(getGraphData, graphDataSignal): new functions
* grapher/Graph.hxx (DatasetList): remove typedef in favor of
systemtap::GraphDataList
* grapher/GraphWidget.cxx (GraphWidget, onGraphDataChanged): Use
graphDataSignal to notice new data sets that need to be added. Use
the global data set list instead of one embedded in GraphWidget.
* grapher/StapParser.hxx: delete the _widget member; use signals to
broadcast that there are new data sets instead of calling into the widget.
|
| |/ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The checkbox selects the list, so it is just sloppy to allow the item
to be selected.
* grapher/GraphWidget.hxx (no_select_fun): New function; just returns
false.
* grapher/GraphWidget.cxx (GraphWidget): Connect list store selection
to function that prevents selection.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Incidently, this supports removing a data set from a graph.
Also, remove the Add, Remove, and Cancel buttons from the data set dialog.
* grapher/GraphWidget.hxx (DataModelColumns::_dataEnabled): new member
_listConnection: new member
* grapher/GraphWidget.cxx (GraphWidget): Delete connections for
removed buttons. Connect to dialog show and hide signals instead of
map. Add "Enabled" column to dialog list.
(onDataAdd, onDataRemove): delete
(onDataDialogOpen): Initialize list store with all data sets and
hook up row_changed signal
(onDataDialogClose, onRowChanged): new functions
* grapher/graph-dialog.glade: Remove obsolete buttons (Add, Remove, Cancel).
|