(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)}) ] )