(CommandList children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:opt_buckets) op:Equal rhs:{(0)} spids:[124])] spids: [124] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:buckets) op:Equal rhs:{(EmptyPart)} spids:[128])] spids: [128] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:opt_power) op:Equal rhs:{(0)} spids:[131])] spids: [131] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:power) op:Equal rhs:{(4)} spids:[135])] spids: [135] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:opt_max) op:Equal rhs:{(0)} spids:[139])] spids: [139] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:max) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithWord w:{(Lit_Digits 1024)}) right: (ArithWord w:{(Lit_Digits 1024)}) ) spids: [144 151] ) } spids: [143] ) ] spids: [143] ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:opt_filter) op:Equal rhs:{(0)} spids:[153])] spids: [153] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:filter) op:Equal rhs:{(EmptyPart)} spids:[157])] spids: [157] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:duration) op:Equal rhs:{(0)} spids:[160])] spids: [160] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:debug) op:Equal rhs:{(0)} spids:[164])] spids: [164] ) (C {(trap)} {(SQ <':'>)} {(INT)} {(QUIT)} {(TERM)} {(PIPE)} {(HUP)}) (FuncDef name: usage body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLessDash fd: 16777215 body: { (DQ ('USAGE: perf-stat-hist [-h] [-b buckets|-P power] [-m max] [-f filter]\n') (' tracepoint variable [seconds]\n') (' -b buckets # specify histogram bucket points\n') (' -P power # power-of (default is 4)\n') (' -m max # max value for power-of\n') (' -f filter # specify a filter \n') (' -h # this usage message\n') (' eg,\n') (' perf-stat-hist syscalls:sys_enter_read count 5\n') (' # read() request histogram, 5 seconds\n') (' perf-stat-hist syscalls:sys_exit_read ret 5\n') (' # read() return histogram, 5 seconds\n') (' perf-stat-hist -P 10 syscalls:sys_exit_read ret 5\n') (' # ... use power-of-10\n') (' perf-stat-hist -P 2 -m 1024 syscalls:sys_exit_read ret 5\n') (' # ... use power-of-2, max 1024\n') (' perf-stat-hist -b ') (Right_DoubleQuote '"') ('10 50 100 500') (Right_DoubleQuote '"') (' syscalls:sys_exit_read ret 5\n') (' # ... histogram based on these bucket ranges\n') (' perf-stat-hist -b 10 syscalls:sys_exit_read ret 5\n') (' # ... bifurcate by the value 10 (lowest overhead)\n') (" perf-stat-hist -f 'rwbs == ") (Right_DoubleQuote '"') (WS) (Right_DoubleQuote '"') ("' block:block_rq_complete nr_sector 5\n") (' # ... synchronous writes histogram, 5 seconds\n') ('\n') ('See the man page and example file for more info.\n') ) } do_expansion: True here_end: END was_filled: T spids: [193] ) (Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[196]) ] ) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [188] ) spids: [184 187] ) (FuncDef name: die body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_At '$@'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[247])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [242] ) spids: [238 241] ) (While cond: [ (C {(getopts)} {(b) (Lit_Other ':') (hm) (Lit_Other ':') (P) (Lit_Other ':') (f) (Lit_Other ':')} {(opt)} ) ] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$opt')} arms: [ (case_arm pat_list: [{(b)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opt_buckets) op: Equal rhs: {(1)} spids: [293] ) ] spids: [293] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:buckets) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$OPTARG')}])} spids: [297] ) ] spids: [297] ) ] spids: [290 291 302 16777215] ) (case_arm pat_list: [{(P)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opt_power) op: Equal rhs: {(1)} spids: [308] ) ] spids: [308] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:power) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [312] ) ] spids: [312] ) ] spids: [305 306 315 16777215] ) (case_arm pat_list: [{(m)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opt_max) op: Equal rhs: {(1)} spids: [321] ) ] spids: [321] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:max) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [325] ) ] spids: [325] ) ] spids: [318 319 328 16777215] ) (case_arm pat_list: [{(f)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opt_filter) op: Equal rhs: {(1)} spids: [334] ) ] spids: [334] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filter) op: Equal rhs: {(DQ ($ VSub_Name '$OPTARG') (' && '))} spids: [338] ) ] spids: [338] ) ] spids: [331 332 344 16777215] ) (case_arm pat_list: [{(h)} {(Lit_Other '?')}] action: [(C {(usage)})] spids: [347 350 354 16777215] ) ] spids: [283 287 357] ) ] spids: [280 359] ) ) (C {(shift)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$OPTIND')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [363 372] ) } ) (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_Less left: (ArithWord w:{($ VSub_Pound '$#')}) right: (ArithWord w:{(Lit_Digits 2)}) ) ) (C {(usage)}) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tpoint) op:Equal rhs:{($ VSub_Number '$1')} spids:[389])] spids: [389] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:var) op:Equal rhs:{($ VSub_Number '$2')} spids:[395])] spids: [395] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:duration) op:Equal rhs:{(${ VSub_Number 3)} spids:[401])] spids: [401] ) (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_DAmp left: (ArithVarRef name:opt_buckets) right: (ArithVarRef name:opt_power) ) ) (C {(die)} {(DQ ('ERROR: use either -b or -P'))}) ] ) (AndOr ops: [Op_DAmp] children: [ (DParen child: (ArithBinary op_id: Arith_DAmp left: (ArithVarRef name:opt_power) right: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:power) right: (ArithWord w:{(Lit_Digits 2)}) ) ) ) (C {(die)} {(DQ ('ERROR: -P power must be 2 or higher'))}) ] ) (If arms: [ (if_arm cond: [ (Pipeline children: [ (SimpleCommand words: [ {(grep)} { (DQ ('^') ($ VSub_Name '$tpoint') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ) } {(/sys/kernel/debug/tracing/available_events)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [470] ) ] ) ] negated: T ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('ERROR: tracepoint ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$tpoint') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' not found. Exiting...') ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[479])] ) (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name '$USER'))} right: {(DQ (root))} ) ) (SimpleCommand words: [{(echo)} {(DQ ('Not root user?'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[509])] ) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 474] ) ] spids: [16777215 521] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithUnary op_id:Arith_Bang child:(ArithVarRef name:opt_buckets))) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:b) op:Equal rhs:{(0)} spids:[541])] spids: [541] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:s) op:Equal rhs:{(1)} spids:[545])] spids: [545] ) (While cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:s) right: (ArithVarRef name:max) ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:b) op: Equal rhs: {(DQ ($ VSub_Name '$b') (' ') ($ VSub_Name '$s'))} spids: [566] ) ] spids: [566] ) (DParen child: (BinaryAssign op_id: Arith_StarEqual left: (LhsName name:s) right: (ArithVarRef name:power) ) ) ] spids: [563 586] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:buckets) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$b')}])} spids: [589] ) ] spids: [589] ) ] spids: [16777215 538] ) ] spids: [16777215 594] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:max) op: Equal rhs: { (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name buckets> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [604 610] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [601 616] ) } spids: [600] ) ] spids: [600] ) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:max_i) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name buckets> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Arith_Star) spids: [626 632] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tpoints) op: Equal rhs: { (DQ ('-e ') ($ VSub_Name '$tpoint') (' --filter ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$filter') (' ') ($ VSub_Name '$var') (' < ') (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [650 655] ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } spids: [640] ) ] spids: [640] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:awkarray) op:Equal rhs:{(EmptyPart)} spids:[659])] spids: [659] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(0)} spids:[661])] spids: [661] ) (While cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:max_i) ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DAmp left: (ArithVarRef name:i) right: (ArithBinary op_id: Arith_LessEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [689 694] ) } ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [698 707] ) } ) ) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(die)} {(DQ ('ERROR: bucket list must increase in size.'))})] spids: [16777215 713] ) ] spids: [16777215 723] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tpoints) op: Equal rhs: { (DQ ($ VSub_Name '$tpoints') (' -e ') ($ VSub_Name '$tpoint') (' --filter ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$filter') (' ') ($ VSub_Name '$var') (' >= ') (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [737 742] ) (' && ') ) } spids: [726] ) ] spids: [726] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tpoints) op: Equal rhs: { (DQ ($ VSub_Name '$tpoints') (' ') ($ VSub_Name '$var') (' < ') (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [753 762] ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } spids: [747] ) ] spids: [747] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:awkarray) op: Equal rhs: { (DQ ($ VSub_Name '$awkarray') (' buckets[') ($ VSub_Name '$i') (']=') (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [773 778] ) (';') ) } spids: [767] ) ] spids: [767] ) (DParen child:(UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))) ] spids: [678 791] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:awkarray) op: Equal rhs: { (DQ ($ VSub_Name '$awkarray') (' buckets[') ($ VSub_Name '$max_i') (']=') (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$max_i')})) spids: [799 804] ) (';') ) } spids: [793] ) ] spids: [793] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tpoints) op: Equal rhs: { (DQ ($ VSub_Name '$tpoints') (' -e ') ($ VSub_Name '$tpoint') (' --filter ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$filter') (' ') ($ VSub_Name '$var') (' >= ') (BracedVarSub token: <VSub_Name buckets> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$max_i')})) spids: [819 824] ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } spids: [808] ) ] spids: [808] ) (If arms: [ (if_arm cond: [(Sentence child:(DParen child:(ArithVarRef name:debug)) terminator:<Op_Semi ';'>)] action: [ (C {(echo)} {(buckets) (Lit_Other ':')} { (BracedVarSub token: <VSub_Name buckets> bracket_op: (WholeArray op_id:Arith_Star) spids: [847 852] ) } ) (C {(echo)} {(tracepoints) (Lit_Other ':')} {($ VSub_Name '$tpoints')}) (C {(echo)} {(awkarray) (Lit_Other ':')} { (BracedVarSub token: <VSub_Name awkarray> bracket_op: (WholeArray op_id:Arith_Star) spids: [868 873] ) } ) ] spids: [16777215 839] ) ] spids: [16777215 875] ) (If arms: [ (if_arm cond: [(Sentence child:(DParen child:(ArithVarRef name:duration)) terminator:<Op_Semi ';'>)] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etext) op: Equal rhs: {(DQ ('for ') ($ VSub_Name '$duration') (' seconds'))} spids: [894] ) ] spids: [894] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(DQ ('sleep ') ($ VSub_Name '$duration'))} spids: [902] ) ] spids: [902] ) ] spids: [16777215 891] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etext) op: Equal rhs: {(DQ ('until Ctrl-C'))} spids: [911] ) ] spids: [911] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(DQ ('sleep 999999'))} spids: [917] ) ] spids: [917] ) ] spids: [908 922] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p_tpoint) op: Equal rhs: {($ VSub_Name '$tpoint')} spids: [925] ) ] spids: [925] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$filter'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p_tpoint) op: Equal rhs: { (DQ ($ VSub_Name '$tpoint') (' (Filter: ') (BracedVarSub token: <VSub_Name filter> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('????')}) spids: [949 953] ) (')') ) } spids: [945] ) ] spids: [945] ) ] spids: [16777215 941] ) ] spids: [16777215 957] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithVarRef name:opt_buckets)) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('Tracing ') ($ VSub_Name '$p_tpoint') (', specified buckets, ') ($ VSub_Name '$etext') (...) ) } ) ] spids: [16777215 970] ) ] else_action: [ (C {(echo)} { (DQ ('Tracing ') ($ VSub_Name '$p_tpoint') (', power-of-') ($ VSub_Name '$power') (', max ') ($ VSub_Name '$max') (', ') ($ VSub_Name '$etext') (...) ) } ) ] spids: [983 1000] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:out) op: Equal rhs: {(DQ ('-o /dev/stdout'))} spids: [1006] ) ] spids: [1006] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:stat) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(eval)} {(perf)} {(stat)} {($ VSub_Name '$tpoints')} {(-a)} {($ VSub_Name '$out')} {($ VSub_Name '$cmd')} ] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1030])] ) ] ) left_token: <Left_CommandSub '$('> spids: [1015 1032] ) } spids: [1014] ) ] spids: [1014] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('ERROR running perf:'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[1053])] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name '$stat'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[1063])] ) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [16777215 1048] ) ] spids: [16777215 1073] ) (If arms: [ (if_arm cond: [(Sentence child:(DParen child:(ArithVarRef name:debug)) terminator:<Op_Semi ';'>)] action: [ (C {(echo)} {(raw)} {(output) (Lit_Other ':')}) (C {(echo)} {(DQ ($ VSub_Name '$stat'))}) (C {(echo)}) ] spids: [16777215 1086] ) ] spids: [16777215 1106] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:most) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$stat'))}) (C {(awk)} {(-v)} {(Lit_VarLike 'tpoint=') ($ VSub_Name '$tpoint')} { (SQ <'\n'> <'\t$2 == tpoint { gsub(/,/, ""); if ($1 > m) { m = $1 } }\n'> <'\tEND { print m }'> ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1113 1135] ) } spids: [1112] ) ] spids: [1112] ) (C {(echo)}) (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$stat'))}) (C {(awk)} {(-v)} {(Lit_VarLike 'tpoint=') ($ VSub_Name '$tpoint')} {(-v)} {(Lit_VarLike 'max_i=') ($ VSub_Name '$max_i')} {(-v)} {(Lit_VarLike 'most=') ($ VSub_Name '$most')} { (SQ <'\n'> <'\tfunction star(sval, smax, swidth) {\n'> <'\t\tstars = ""\n'> <'\t\tif (smax == 0) return ""\n'> <'\t\tfor (si = 0; si < (swidth * sval / smax); si++) {\n'> <'\t\t\tstars = stars "#"\n'> <'\t\t}\n'> <'\t\treturn stars\n'> <'\t}\n'> <'\tBEGIN {\n'> <'\t\t'> ) (DQ ($ VSub_Name '$awkarray')) (SQ <'\n'> <'\t\tprintf(" %-15s: %-8s %s\\n", "Range", "Count",\n'> <'\t\t "Distribution")\n'> <'\t}\n'> <'\t/Performance counter stats/ { i = -1 }\n'> <'\t# reverse order of rule set is important\n'> <'\t{ ok = 0 }\n'> <'\t$2 == tpoint { num = $1; gsub(/,/, "", num); ok = 1 }\n'> <'\tok && i >= max_i {\n'> <'\t\tprintf(" %10d -> %-10s: %-8s |%-38s|\\n", buckets[i],\n'> <'\t\t "", num, star(num, most, 38))\n'> <'\t\tnext\n'> <'\t}\n'> <'\tok && i >= 0 && i < max_i {\n'> <'\t\tprintf(" %10d -> %-10d: %-8s |%-38s|\\n", buckets[i],\n'> <'\t\t buckets[i+1] - 1, num, star(num, most, 38))\n'> <'\t\ti++\n'> <'\t\tnext\n'> <'\t}\n'> <'\tok && i == -1 {\n'> <'\t\tprintf(" %10s -> %-10d: %-8s |%-38s|\\n", "",\n'> <'\t\t buckets[0] - 1, num, star(num, most, 38))\n'> <'\t\ti++\n'> <'\t}\n'> ) } ) ] negated: F ) ] )