| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
As mjw's aborted commit 5ab0b1b6 attempted, we can use a @cast to get
the filesystem root for the current task instead of embedded-C. I've
left it using the kernel debuginfo instead of headers for now, because
all of the neighboring @casts are doing the same.
* tapset/dentry.stp (d_path): Use @cast to get the root.
(__dentry_get_current_root): Remove, no longer needed.
* testsuite/buildok/dentry.stp: Test that dentry's functions all build.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We didn't really have good semantics for what is meant by MAXTRYLOCK=0,
so when skipped.exp tried it, we ended up locking the variable and then
reporting a skip without ever unlocking it.
This is now cleaning up the semantics such that MAXTRYLOCK defines how
many times we should loop if the lock is busy. Thus MAXTRYLOCK=0 means
we try only once and fail immediately.
The testcase was accidentally creating contention due to the broken
unlock behavior. We now have to try a bit harder to create real
contention, so some lengthy delays are inserted to hoard the lock.
* runtime/probe_lock.h (stp_probe_lock): Fix the skip behavior.
* testsuite/systemtap.base/skipped.exp: Add a big udelay.
|
|
|
|
|
|
|
|
|
|
| |
Sometimes you need multiple headers to fully describe a type, so we now
permit them to be listed together, e.g. "kernel<foo.h><bar.h>".
* buildrun.cxx (make_typequery): Split the input string into a vector.
(make_typequery_kmod, make_typequery_umod): Use the vector of headers.
* testsuite/semok/cast.stp: Add a multi-header case.
* stap.1.in, NEWS: Document it.
|
|
|
|
|
|
|
| |
* testsuite/buildok/scheduler-test-tracepoints.stp: Removed unneeded '-u'
option.
* testsuite/buildok/vm.tracepoints.kmalloc.stp: Ditto.
* testsuite/buildok/vm.tracepoints.stp: Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The constant-folding is now enabled for s.listing_mode_vars, despite all
other optimizations being disabled. This is needed so we can prune any
invalid branches that are gated by @defined.
* elaborate.cxx (semantic_pass): Leave the optimization decision to the
optimization passes themselves.
(semantic_pass_optimize1): Predicate most optimizations, but enable the
constant-folding for listing_mode_vars too.
(semantic_pass_optimize2): Predicate all (1) optimizations.
* testsuite/semok/defined_list_vars.stp: New test.
|
|
|
|
|
|
|
| |
* testsuite/systemtap.context/uprobe_stmt_num.exp: Change utrace test to
uprobes test.
* testsuite/systemtap.context/uprobe_uaddr.exp: Ditto.
* testsuite/systemtap.base/bz5274.exp: Ditto.
|
|
|
|
|
|
|
|
|
|
| |
* tapset/tty.stp: Used '@defined()' to remove kernel version checks.
* tapset/scheduler.stp: Ditto.
* tapset/vfs.stp: Used '@defined()' to remove kernel version checks. Also
made several probe points optional instead of using kernel version
checks to know when to include them.
* testsuite/buildok/vfs_testcase.stp: Removed stap '-u' (unoptimized mode)
switch, since '@defined()' doesn't work in unoptimized mode.
|
| |
|
|
|
|
|
|
|
|
|
| |
The *ko tests are for things that SHOULD fail, but semko/nineteen is a
test that should pass but often doesn't (due to inline var trouble). It
should be in semok to set the expectation properly.
It does pass on F12 now, but if we want to silence the error for older
gcc, setup_kfail is the right approach.
|
| |
|
|
|
|
|
| |
* tapset/context.stp: Add cmdline_str, cmdline_arg and cmdline_args.
* testsuite/buildok/context_test.stp: Add tests for new functions.
|
| |
|
|
|
|
|
|
| |
* tapset/task_time.stp: New functions task_stime_tid(), task_utime_tid()
and task_time_string_tid().
* testsuite/buildok/task_test.stp: Add tests.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parse.h (try_block): New class. Update basic visitors.
* staptree.cxx: Implement basic visitors.
* parse.cxx (expect_kw): Fix to actually look for keywords.
(parse_try_block): New function.
(lexer ctor): Designate 'try' and 'catch' as keywords.
* elaborate.cxx (dead_assignment_remover, dead_statmtexpr_remover): Optimize.
(other visitors): Implement.
* translate.cxx (c_unparser): Implement via super-handy __local__ labels.
(emit_probe, emit_function): Make outer out: label also __local__.
* testsuite/buildok/fortyone.stp, semko/fortynine.stp,
systemtap.base/trycatch.exp: Test it.
* NEWS, doc/langref.txt, stap.1.in: Document it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* staptree.h (functiondecl): Add a synthetic flag.
* elaborate.cxx (semantic_pass_opt1): Don't warn about synthetic funcs.
* tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol): Mark
the new function as synthetic.
(dwarf_cast_expanding_visitor::visit_cast_op): Ditto.
(tracepoint_var_expanding_visitor::visit_target_symbol_arg): Ditto.
* tapset-perfmon.cxx
(perfmon_var_expanding_visitor::visit_target_symbol): Ditto.
* tapset-procfs.cxx (procfs_var_expanding_visitor::visit_target_symbol):
Ditto.
* testsuite/semok/thirtyeight.stp: New check with -W and @defined.
|
|
|
|
|
|
|
|
| |
* session.h
* NEWS: Discuss it.
* main.cxx: Parse it.
* session.h (num_errors): Provide it.
* semok/fortyeight.stp, semok/thirtyseven.stp: Test it.
|
|
|
|
|
|
|
| |
We need to poison the false case of valid "@defined(x)?x:y", so we know
that the @defined is correctly leading to the true case only.
* testsuite/semok/thirtysix.stp: poison false in valid cases.
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (var_expanding_visitor::visit_defined_op): If no error was
raised or replacement made on a target_symbol, then its @defined state
is still indeterminate. Some later pass (like @cast) might handle it.
* elaborate.cxx (const_folder::visit_defined_op): Squash any escapees.
* testsuite/semok/thirtysix.stp: Add more variants.
|
|
|
|
|
|
|
|
|
|
| |
We now check validity *before* the entry-probe is generated, so invalid
$vars have a chance to be properly optimized without error.
* tapsets.cxx
(dwarf_var_expanding_visitor::visit_target_symbol_saved_return):
Attempt variable expansion immediately, and skip out on failure.
* testsuite/semok/thirtysix.stp: unblock the previously broken part.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapset-procfs.cxx (procfs_derived_probe::procfs_derived_probe): Added
'maxsize_val' initialization.
(procfs_derived_probe::join_group): Updated '_stp_procfs_data'
definition and added STP_PROCFS_BUFSIZE.
(procfs_derived_probe_group::emit_module_decls): Emits structure to
contain procfs file buffers. Initializes '.bufsize' structure member.
(procfs_var_expanding_visitor::visit_target_symbol): Uses 'bufsize' for
maximum buffer size instead of using MAXSTRINGLEN.
(procfs_builder::build): Looks for '.maxsize(NNN)' parameter.
(register_tapset_procfs): Added '.maxsize(NNN)' parameter binding.
* runtime/procfs-probes.c (stap_procfs_probe): Converted 'buffer' to a
pointer and added 'bufsize' member.
* testsuite/semko/procfs13.stp: New testcase.
* testsuite/semko/procfs14.stp: Ditto.
* testsuite/semko/procfs15.stp: Ditto.
* testsuite/systemtap.base/procfs_maxsize.exp: Ditto.
* testsuite/systemtap.base/procfs.exp: Minor fix.
* stapprobes.3stap.in: Added '.maxsize(NNN)' documentation.
* stap.1.in: Added STP_PROCFS_BUFSIZE documentation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unresolvable $variables
* staptree.cxx (target_symbol::chain): New function.
* staptree.h: Declare it.
* (*): Use it instead of hand-chaining to target_symbol->saved_conversion_error.
* tapset-mark.cxx (*::visit_target_symbol): Chain resolution error object,
do not throw.
* tapset-procfs.cxx (*::visit_target_symbol): Ditto.
* tapset-utrace.cxx (*::visit_target_symbol): Ditto.
* tapsets.cxx (*::visit_target_symbol): Ditto.
(*::visit_defined_op): Explain & enforce the above.
* testsuite/semok/thirtysix.stp: Expand.
* testsuite/systemtap.base/sdt_misc.exp: Bonus fix: make work with blddir != srcdir.
|
|
|
|
|
|
|
|
| |
The operand of a unary may be yet another unary. This is useful for
things like boolean normalization, !!x.
* parse.cxx (parser::parse_unary): Recurse the operand.
* testsuite/parseok/eleven.stp: Add chained unary operators.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 'master' of ssh://sources.redhat.com/git/systemtap:
PR10719 part 1: Partial constant folding
Simplify null_statement construction
Fixed PR 11269 by properly handling mmap syscall 'fd' argument.
Removed rvalue operator check.
PR 10690 (partial fix). Handle '.=' operator in procfs probes.
Conflicts:
tapsets.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* testsuite/systemtap.syscall/mmap.c (main): Added mprotect and mremap
testing (along with testing of anonymous maps).
* tapset/i386/syscalls.stp: In mmap probes, handle the fact that the
kernel gets an unsigned long 'fd', but the user-side passes a signed
int.
* tapset/i386/nd_syscalls.stp: Ditto.
* tapset/ia64/syscalls.stp: Ditto.
* tapset/powerpc/nd_syscalls.stp: Ditto.
* tapset/powerpc/syscalls.stp: Ditto.
* tapset/x86_64/nd_syscalls.stp: Ditto.
* tapset/x86_64/syscalls.stp: Ditto.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* staptree.h (defined_op): New class.
* all files: Extend all visitors as appropriate, mostly
dummy/pass-through implementation.
* parse.cxx (parse_target_symbol): New function, factored out
of parse_symbol().
(parse_define_op): New function.
* NEWS: Mention it.
* parse.h: Corresponding changes.
* tapsets.cxx (var_expanding_visitor::visit_defined_op):
Implement @defined() semantics.
(dwarf_var_expanding_visitor::visit_target_symbol): Adjust.
* tapset-utrace.c (visit_target_symbol_arg): Avoid crashes
on $argZZZ.
* tapsets.cxx (sdt_var_expanding_visitor): Ditto.
* semok/thirtysix.stp: New test.
|
|
|
|
|
|
|
|
|
|
|
| |
Later tests might trigger a cleanup and might set the global dir variable
leading to the syscall test.tcl trying to do an exec rm -rf on whatever
dir was set. So rename proc cleanup and global dir in syscall test.tcl to
something a bit less likely to clash.
* testsuite/systemtap.syscall/test.tcl: Rename proc cleanup to syscall_cleanup
and global dir to syscall_dir.
* testsuite/systemtap.syscall/test-debug.tcl: Likewise.
|
|
|
|
| |
* sdt_misc.exp: Make all semaphore references from the .so
|
| |
|
| |
|
|
|
|
|
| |
* parse.cxx (lexer::scan): Glue adjacent strings together.
* testsuite/parseko/twentyseven.stp, semok/thirtyfive.stp: New tests.
|
|
|
|
|
|
|
| |
* parse.cxx (eval_pp_conditional): If rhs and lhs are both CONFIG_...
identifiers try to convert them both to numbers or otherwise threat
them both as strings for eval_comparison.
* testsuite/semok/config_config.stp: New test.
|
|
|
|
|
|
| |
* parse.cxx (eval_pp_conditional): Handle r->type == tok_number when
l->type == tok_identifier.
* testsuite/semok/config_number.stp: New test.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously, our octal escapes used variable lengths, which can lead to
ambiguities. Also, 8-bit characters would only output the least digit.
* runtime/string.c (_stp_text_str): Always output 3-digit octal escapes,
and handle 8-bit chars more gracefully.
* testsuite/systemtap.string/text_str.stp: Include an 8-bit character.
* testsuite/systemtap.string/text_str.exp: Above + expect 3-digit octal.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parallel install into lib-elfutils during the build seems to be fragile,
so explicitly install the libs with -j1.
* Makefile.am (stamp-elfutils): Add -j1 in for dir loop sub make.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* compile: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* doc/SystemTap_Tapset_Reference/Makefile.in: Likewise.
* doc/beginners/Makefile.in: Likewise.
* grapher/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
* testsuite/aclocal.m4: Likewise.
* testsuite/configure: Likewise.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since 2.6.33 sendfile can handle non-socket fds, so make the test
handle both success and failure.
* testsuite/systemtap.syscall/sendfile.c (main): Make buffer 22 bytes,
since 22 == EINVAL, test for 22 bytes send or -22 failure.
|
| |
| |
| |
| |
| |
| |
| | |
* util.h, util.cxx (assert_match_regexp): New function.
* main.cxx (main): Constrain -R, -r, -a, -D, -S, -q, -B flags.
* stap-serverd (listen): Harden stap-server-connect with ulimit/loop.
* testsuite/systemtap.server/{client,server}_args.exp: Revised.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Test is simple, because print and sprint uses the same code for handling
@hist_* and it is not intended for playing with MAXSTRINGLEN, which is
required anyway for bigger histograms (the one generated here consists
of only 127 characters).
When PR10690 (need way to produce bigger procfs output) will be fixed,
then we should add another test for both PRs with normal histogram.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* testsuite/systemtap.syscall/test.tcl: Now uses global variable
'test_script' to find test script to run.
* testsuite/systemtap.syscall/syscall.exp: Sets test_script.
* testsuite/systemtap.syscall/nd_sys.stp: New test script. Copy of
sys.stp, but uses nd_syscall probes.
* testsuite/systemtap.syscall/nd_syscall.exp: New testcase. Copy of
syscall.exp, but uses nd_sys.stp test script.
|
| |
| |
| |
| | |
tcl.exp: Initialize xok
|
| |
| |
| |
| |
| |
| | |
* testsuite/systemtap.base/labels.exp: Corrected order of
'spawn;expect;wait' calls. Added 'wait' calls when needed. Also,
doesn't run the "labels exe .label" test if uprobes isn't supported.
|
|/
|
|
|
|
|
| |
- Bind unprivileged permission at probe registration time.
- Remove check_unprivileged filter from derived_probe_builder
and its children.
- Add test suites for unprivilegedok and unprivilegedko.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Files changed:
tapset/ipmib.stp, tapset.tcpmib.stp, testsuite/systemtap.examples/network/tcpipstat.stp, testsuite/systemtap.examples/network/tcp_trace.stp
Signed-of-by: David Wilder <dwilder@us.ibm.com>
|
|
|
|
|
| |
* mysql.exp: Use SYSTEM_INCLUDES.
* postgres.exp: Likewise.
|