From 30263a7389d5c2712536b74656193708bbc64d49 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 23 Feb 2010 20:31:00 -0500 Subject: PR11005: @defined($tvar) predicate, part 1 * 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. --- NEWS | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 8d9fe2bf..85619f8e 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,9 @@ * What's new +- A new predicate @defined is available for testing whether a + particular $variable/expression is resolvable at translate time: + probe foo { if (@defined($bar)) log ("$bar is available here") } + - Adjacent string literals are glued together, making this construct valid: probe process("/usr" @1 "/bin").function("*") { ... } -- cgit