summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fixed pr 10690 by adding '.maxsize(NNN)' procfs read probe parameter.David Smith2010-02-259-28/+439
| | | | | | | | | | | | | | | | | | | | | | * 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.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapCharley Wang2010-02-259-630/+49
|\
| * PR11114: simplify librpm autoconfFrank Ch. Eigler2010-02-259-630/+49
| | | | | | | | | | * configure.ac: Check for -lrpm with simple AC_CHECK_LIB. * Makefile.am: Forget about @rpm_LIBS@
* | PR11224: Documentation for module argumentsCharley Wang2010-02-252-4/+33
|/
* PR11224: added test case for module arguments in testsuite/systemtap.baseCharley Wang2010-02-252-0/+35
|
* PR11005: @defined part 2: clarify/standardize internal handling of ↵Frank Ch. Eigler2010-02-258-357/+400
| | | | | | | | | | | | | | | | | 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.
* PR10719 cont'd: const-fold binary expressionsJosh Stone2010-02-241-2/+97
| | | | | | | | We can compute results between two literals, we can reduce identity elements, and reduce constants if the non-literal side has no side effects. * elaborate.cxx (const_folder::visit_binary_expression): Implement.
* Permit chained unary operatorsJosh Stone2010-02-242-2/+8
| | | | | | | | 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.
* PR10719 cont'd: const-fold logical opsJosh Stone2010-02-241-4/+84
| | | | | | | | | We can compute results between two literals, we can short-circuit some literals on the left ("0&&x", "1||x"), and we can simplify literals on the right if the left has no side effect ("x&&0", "x||1"). * elaborate.cxx (const_folder::visit_logical_or_expr): Implement. (const_folder::visit_logical_and_expr): Implement.
* PR10719 cont'd: const-fold comparisonsJosh Stone2010-02-231-2/+85
| | | | | | | | | | We can compute results between two literals, and we can also compute comparisons to boundary numbers. (We could also check boundary strings, "" and "\377\377...", but even I am not THAT pedantic... yet...) * elaborate.cxx (const_folder::visit_comparison): Implement.
* PR10719 cont'd: const-fold string concatenationJosh Stone2010-02-231-2/+24
| | | | | | We can concat literal strings directly and discard empty strings. * elaborate.cxx (const_folder::visit_concatenation): Implement.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapFrank Ch. Eigler2010-02-2315-58/+392
|\ | | | | | | | | | | | | | | | | | | | | | | * '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
| * PR10719 part 1: Partial constant foldingJosh Stone2010-02-231-0/+227
| | | | | | | | | | | | | | | | | | This implements constant folding for if/for/foreach, unary expressions, and ternary expressions. Binary expressions are TODO... * elaborate.cxx (const_folder): New visitor to collapse constants. (semantic_pass_const_fold): Drive everything through const_folder. (semantic_pass_optimize1): Call it.
| * Simplify null_statement constructionJosh Stone2010-02-234-11/+18
| | | | | | | | It only needs a token*, so build that into the constructor.
| * Fixed PR 11269 by properly handling mmap syscall 'fd' argument.David Smith2010-02-238-26/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * Removed rvalue operator check.David Smith2010-02-231-12/+4
| | | | | | | | | | * tapset-procfs.cxx (procfs_var_expanding_visitor::visit_target_symbol): Removed unneeded rvalue operator check.
| * PR 10690 (partial fix). Handle '.=' operator in procfs probes.David Smith2010-02-233-21/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tapsets.h (var_expanding_visitor): Add 'valid_ops' and 'op' member variables. * tapsets.cxx (var_expanding_visitor::var_expanding_visitor): Set 'valid_ops' to '='. By default, var_expanding_visitor classes only handle the '=' operator. (var_expanding_visitor::visit_assignment): Remember what operator we're handling. When an operator is found that isn't in the 'valid_ops' set, error. * tapset-procfs.cxx (procfs_var_expanding_visitor::procfs_var_expanding_visitor): Add '.=' to the 'valid_ops' set. (procfs_var_expanding_visitor::visit_target_symbol): Handle the '.=' operator when the target variable is an lvalue.
* | PR11005: @defined($tvar) predicate, part 1Frank Ch. Eigler2010-02-2312-64/+302
|/ | | | | | | | | | | | | | | | | | * 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.
* hashing: add in the -Werror-defeating flagFrank Ch. Eigler2010-02-221-0/+1
|
* Check for/build elfutils iff translator is enabled.Przemyslaw Pawelczyk2010-02-222-26/+30
| | | | * configure.ac: Don't bother with elfutils if $enable_translator = no.
* Prevent accidental global cleanup triggering for syscall test.tcl.Mark Wielaard2010-02-222-34/+34
| | | | | | | | | | | 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.
* Tweak shared attach sdt test.Stan Cox2010-02-211-40/+70
| | | | * sdt_misc.exp: Make all semaphore references from the .so
* hwbkpt: simplify diagnostics and codeFrank Ch. Eigler2010-02-212-104/+84
| | | | | | | | | | | * tapsets.cxx (hwbkpt_derivedc_probe_group): Lose max_... field. Rename hwbkpt_probes_vector -> hwbkpt_probes. (enroll): Instead set it here, emit normal suppressible warning if exceeded. (emit_*): Use newline(NN) etc. for proper indentation of generated code. (emit_module_init): Defer most potential problems to register_wide_hw_breakpoint() instead of preemptive errors. * translate.cxx (emit_module_init): Assert 0 indentation more frequently.
* Make unprivilegedok/one.stp compatible with vanilla kernelWenji Huang2010-02-211-1/+1
|
* Add explicit timeout to overflow_error testWenji Huang2010-02-211-0/+1
|
* Translator enablement of Hardware breakpoints for s390Prerna Saxena2010-02-211-2/+16
|
* hardware breakpoints: improve error messages for unsupported configurationsFrank Ch. Eigler2010-02-191-17/+22
| | | | | | * tapsets.cxx (hwbkpt_builder::build): Assert needed kernel_configs here, instead of.. (register_standard_tapsets): ... here.
* PR11208: glue adjacent string literals together.Frank Ch. Eigler2010-02-194-2/+37
| | | | | * parse.cxx (lexer::scan): Glue adjacent strings together. * testsuite/parseko/twentyseven.stp, semok/thirtyfive.stp: New tests.
* PR11275: be less verbose in case of command line option parsingFrank Ch. Eigler2010-02-191-18/+23
| | | | | * main.cxx (main): exit() instead of printing usage for most errors. Also support --help.
* Allow CONFIG_foo COMPARISON-OP CONFIG_bar in preprocessor conditionals.Mark Wielaard2010-02-192-2/+43
| | | | | | | * 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.
* Allow CONFIG_foo COMPARISON-OP number in preprocessor conditionals.Mark Wielaard2010-02-192-12/+51
| | | | | | * parse.cxx (eval_pp_conditional): Handle r->type == tok_number when l->type == tok_identifier. * testsuite/semok/config_number.stp: New test.
* PR11296: switch to "sys/sdt.h" in test casesFrank Ch. Eigler2010-02-1814-18/+18
|
* Restore redirection of the stdout of stap-serverd to /dev/nullDave Brolley2010-02-171-1/+1
|
* Improved server certificate management. ulimit for stap-server only.Dave Brolley2010-02-175-47/+85
| | | | | | | - Server now generates a new certificate when old one expires. - Certificates now valid for 1 year. - ulimit for stap-server-connect now only set for stap-server user and only when override variable is not set.
* Use clamping to more easily normalize input valuesJosh Stone2010-02-165-20/+25
| | | | | | The kernel has min/max/clamp macros to make range comparisons easier. Clamp is a newer invention, but we can define it for older kernels in terms of min and max.
* PR11282: Keep the md4 state in the hash copy constructorJosh Stone2010-02-161-1/+1
| | | | | | | | We were getting new hash collisions, because the new hash copy constructor was restarting the md4 computation. Everything from get_base_hash was thus lost. * hash.h (hash::hash): Keep the md4 state when copying.
* PR11277: Use consistent octal in quoted stringsJosh Stone2010-02-163-33/+26
| | | | | | | | | | 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.
* Don't try to parallel install partial build-elfutils build in lib-elfutils.Mark Wielaard2010-02-1613-2663/+4845
| | | | | | | | | | | | | | | | | | | 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.
* Add documentation for task.stp tapset.Mark Wielaard2010-02-152-34/+105
|
* elaborate.cxx: Point to the location of the error when rejectingDave Brolley2010-02-151-1/+2
| | | | probe points.
* Don't pass client-only options to the server.Dave Brolley2010-02-151-6/+12
| | | | Also correct parsing of the --server option.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2010-02-1516-84/+252
|\
| * PR11281 Allow negative values for -D argument.Mark Wielaard2010-02-141-1/+1
| | | | | | | | | | | | | | Change regexp match to "^[a-z_][a-z_0-9]*(=-?[a-z_0-9]+)?$". * main.cxx (main): case 'D' allow optional single minus sign after equal in assert_regexp_match().
| * Test for sendfile syscall can handle non-socket fds now.Mark Wielaard2010-02-131-4/+4
| | | | | | | | | | | | | | | | 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.
| * PR11105 part 2a, fix buggy \\. in -r option regexpFrank Ch. Eigler2010-02-121-1/+1
| |
| * PR11105 part 2: tighten constraints on stap-server parameters passed to makeFrank Ch. Eigler2010-02-126-56/+101
| | | | | | | | | | | | | | * 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.
| * Add simple test for PR10257 (sprint(@hist_linear)).Przemysław Pawełczyk2010-02-112-0/+18
| | | | | | | | | | | | | | | | | | | | 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.
| * Fixed PR 11270 by adding nd_syscall testcase.David Smith2010-02-104-2/+99
| | | | | | | | | | | | | | | | | | | | * 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.
| * Merge branch 'master' of ssh://sourceware.org/git/systemtapStan Cox2010-02-091-5/+3
| |\
| | * rhbz#563114 Make syscall.pipe sys32_pipe probe alias optional on x86_64.Mark Wielaard2010-02-091-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some distributions might have backported the pipe fd leak patch and removed the sys32_pipe kernel function even before 2.6.32. So make the probe alias optional instead of relying on a version check. * tapset/x86_64/syscalls.stp (syscall.pipe): Make alias optional. (syscall.pipe.return): Likewise.