(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PERF_DATA) op:Equal rhs:{(perf.data)} spids:[10])] spids: [10] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PERF_DATA) op: Equal rhs: {($ VSub_Number '$1')} spids: [30] ) ] spids: [30] ) ] spids: [-1 27] ) ] spids: [-1 33] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {($ VSub_Name '$PERF_BUILDID_DIR')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PERF_BUILDID_DIR) op: Equal rhs: {(TildeSubPart prefix:'') (/.debug/)} spids: [62] ) ] spids: [62] ) ] spids: [-1 59] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PERF_BUILDID_DIR) op: Equal rhs: {($ VSub_Name '$PERF_BUILDID_DIR') (/)} spids: [73] ) ] spids: [73] ) ] spids: [66 77] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUILDIDS) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(/tmp/perf-archive-buildids.XXXXXX)})] ) left_token: <Left_CommandSub '$('> spids: [81 85] ) } spids: [80] ) ] spids: [80] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NOBUILDID) op: Equal rhs: {(0000000000000000000000000000000000000000)} spids: [87] ) ] spids: [87] ) (Pipeline children: [ (C {(perf)} {(buildid-list)} {(-i)} {($ VSub_Name '$PERF_DATA')} {(--with-hits)}) (SimpleCommand words: [{(grep)} {(-v)} {(DQ ('^') ($ VSub_Name '$NOBUILDID') (' '))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$BUILDIDS')} spids: [113] ) ] ) ] negated: False ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-s)} {($ VSub_Name '$BUILDIDS')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('perf archive: no build-ids found'))}) (AndOr children: [(C {(rm)} {($ VSub_Name '$BUILDIDS')}) (C {(true)})] op_id: Op_DPipe ) (C {(exit)} {(1)}) ] spids: [-1 131] ) ] spids: [-1 154] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANIFEST) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(/tmp/perf-archive-manifest.XXXXXX)})] ) left_token: <Left_CommandSub '$('> spids: [158 162] ) } spids: [157] ) ] spids: [157] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PERF_BUILDID_LINKDIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(-f)} {($ VSub_Name '$PERF_BUILDID_DIR')})] ) left_token: <Left_CommandSub '$('> spids: [165 171] ) (/) } spids: [164] ) ] spids: [164] ) (Pipeline children: [ (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(1)} {($ VSub_Name '$BUILDIDS')}) (While cond: [(Sentence child:(C {(read)} {(build_id)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:linkname) op: Equal rhs: {($ VSub_Name '$PERF_BUILDID_DIR') (.build-id/) (BracedVarSub token: <VSub_Name build_id> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w:{(Lit_Digits 2)}) ) spids: [206 212] ) (/) (BracedVarSub token: <VSub_Name build_id> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [214 218] ) } spids: [203] ) ] spids: [203] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filename) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(-f)} {($ VSub_Name '$linkname')})] ) left_token: <Left_CommandSub '$('> spids: [222 228] ) } spids: [221] ) ] spids: [221] ) (SimpleCommand words: [ {(echo)} { (BracedVarSub token: <VSub_Name linkname> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {($ VSub_Name '$PERF_BUILDID_DIR')} ) spids: [233 237] ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name '$MANIFEST')} spids: [239] ) ] ) (SimpleCommand words: [ {(echo)} { (BracedVarSub token: <VSub_Name filename> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {($ VSub_Name '$PERF_BUILDID_LINKDIR')} ) spids: [246 250] ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name '$MANIFEST')} spids: [252] ) ] ) ] spids: [200 256] ) ) ] negated: False ) (C {(tar)} {(cjf)} {($ VSub_Name '$PERF_DATA') (.tar.bz2)} {(-C)} {($ VSub_Name '$PERF_BUILDID_DIR')} {(-T)} {($ VSub_Name '$MANIFEST')} ) (AndOr children: [(C {(rm)} {($ VSub_Name '$MANIFEST')} {($ VSub_Name '$BUILDIDS')}) (C {(true)})] op_id: Op_DPipe ) (C {(echo)} {(-e)} {(DQ ('Now please run:') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))}) (C {(echo)} {(-e)} { (DQ (Lit_Other '$') (' tar xvf ') ($ VSub_Name '$PERF_DATA') ('.tar.bz2 -C ~/.debug') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ) } ) (C {(echo)} {(DQ ("wherever you need to run 'perf report' on."))}) (C {(exit)} {(0)}) ] )