From 1bbeef03a440e3ac23d6e5148675450597a58e67 Mon Sep 17 00:00:00 2001 From: graydon Date: Fri, 2 Dec 2005 23:28:03 +0000 Subject: 2005-12-02 Graydon Hoare * elaborate.cxx (mutated_var_collector): Forward traversal portion of calls to base class. (mutated_var_collector::visit_arrayindex): Resolve arrayindex-into-histogram expression as pe_long. (typeresolution_info::visit_print_format): Traverse into histogram if present. * parse.cxx (parse_symbol): Handle parse ambiguity surrounding print(@hist_op(...)[...]). * staptree.cxx (traversing_visitor::visit_arrayindex): Visit base member of arrayindex. * translate.cxx (c_unparser::histogram_index_check): New method. (var::hist): Fix bug. (var::buckets): New method. (stmt_expr::stmt_expr): Print with newline. (c_unparser::load_map_indices): Handle indexing-histogram case. (c_tmpcounter::visit_arrayindex): Likewise. (c_unparser::visit_arrayindex): Likewise. (c_tmpcounter_assignment::visit_arrayindex): Throw error when user attempts to write to histogram bucket. (c_unparser_assignment::visit_arrayindex): Likewise. * testsuite/buildok/print_histogram_entry.stp: New test. --- testsuite/buildok/print_histogram_entry.stp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 testsuite/buildok/print_histogram_entry.stp (limited to 'testsuite/buildok/print_histogram_entry.stp') diff --git a/testsuite/buildok/print_histogram_entry.stp b/testsuite/buildok/print_histogram_entry.stp new file mode 100755 index 00000000..bf87ecbe --- /dev/null +++ b/testsuite/buildok/print_histogram_entry.stp @@ -0,0 +1,29 @@ +#! stap -p4 + +global foo +global i + +probe begin +{ + print("starting up\n") + i = 0 +} + +probe timer.jiffies(100) +{ + printf("ping %d\n", i) + foo <<< i + if (i++ > 15) + exit() +} + +probe end +{ + print("shutting down\n") + printf("count %d, avg %d\n", @count(foo), @avg(foo)) + for (i = 0; i < 7; ++i) + { + printf("bucket %d: %d\n", i, @hist_log(foo)[i]) + } +} + -- cgit