(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pcprofileso) op: Equal rhs: {(SQ <'@SLIBDIR@/libpcprofile.so'>)} spids: [49] ) ] spids: [49] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pcprofiledump) op: Equal rhs: {(SQ <'@BINDIR@/pcprofiledump'>)} spids: [54] ) ] spids: [54] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TEXTDOMAIN) op:Equal rhs:{(libc)} spids:[59])] spids: [59] ) (FuncDef name: do_usage body: (BraceGroup children: [ (C {(printf)} {(DQ ('Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...') (Lit_Other '\\') (n))} ) (C {(exit)} {(0)}) ] spids: [70] ) spids: [66 69] ) (FuncDef name: help_info body: (BraceGroup children: [ (SimpleCommand words: [ {(printf)} { (DQ ('Try ') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ("%s --help' or ") (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ("%s --usage' for more information.") (Lit_Other '\\') (n) ) } {(xtrace)} {(xtrace)} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[101])] ) (C {(exit)} {(1)}) ] spids: [96] ) spids: [92 95] ) (FuncDef name: do_missing_arg body: (BraceGroup children: [ (SimpleCommand words: [ {(printf)} {(DQ ("%s: option '%s' requires an argument.") (Lit_Other '\\') (n))} {(xtrace)} {(DQ ($ VSub_Number '$1'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[138])] ) (C {(help_info)}) ] spids: [133] ) spids: [129 132] ) (FuncDef name: do_help body: (BraceGroup children: [ (C {(printf)} {(DQ ('Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...') (Lit_Other '\\') (n))} ) (C {(printf)} { (DQ ('Trace execution of program by printing currently executed function.\n') ('\n') ( " --data=FILE Don't run the program, just print the data from FILE.\n" ) ('\n') (' -?,--help Print this help and exit\n') (' --usage Give a short usage message\n') (' -V,--version Print version information and exit\n') ('\n') ( 'Mandatory arguments to long options are also mandatory for any corresponding\n' ) ('short options.\n') ('\n') ) } ) (C {(printf)} { (DQ ('For bug reporting instructions, please see:') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('n%s.') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n) ) } {(DQ ('@REPORT_BUGS_TO@'))} ) (C {(exit)} {(0)}) ] spids: [166] ) spids: [162 165] ) (FuncDef name: do_version body: (BraceGroup children: [ (C {(echo)} {(SQ <'xtrace @PKGVERSION@@VERSION@'>)}) (C {(printf)} { (DQ ('Copyright (C) %s Free Software Foundation, Inc.\n') ('This is free software; see the source for copying conditions. There is NO\n') ('warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n') ) } {(DQ (2016))} ) (C {(printf)} {(DQ ('Written by %s.\n'))} {(DQ ('Ulrich Drepper'))}) (C {(exit)} {(0)}) ] spids: [223] ) spids: [219 222] ) (FuncDef name: format_line body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fct) op: Equal rhs: {($ VSub_Number '$1')} spids: [274] ) ] spids: [274] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(':*')}) spids: [279 283] ) } spids: [278] ) ] spids: [278] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:line) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*:')}) spids: [287 291] ) } spids: [286] ) ] spids: [286] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:width) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {($ VSub_Name '$COLUMNS')} {(-)} {(30)})] ) left_token: <Left_CommandSub '$('> spids: [295 303] ) } spids: [294] ) ] spids: [294] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filelen) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {(length)} {($ VSub_Name '$file')})] ) left_token: <Left_CommandSub '$('> spids: [307 313] ) } spids: [306] ) ] spids: [306] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$filelen'))} {(-gt)} {(DQ ($ VSub_Name '$width'))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rwidth) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {($ VSub_Name '$width')} {(-)} {(3)})] ) left_token: <Left_CommandSub '$('> spids: [335 343] ) } spids: [334] ) ] spids: [334] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: { (DQ (...) (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(substr)} {($ VSub_Name '$file')} { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(1)} {(Lit_Other '+')} {($ VSub_Name '$filelen')} {(-)} {($ VSub_Name '$rwidth')} ) ] ) left_token: <Left_CommandSub '$('> spids: [356 368] ) } {($ VSub_Name '$rwidth')} ) ] ) left_token: <Left_CommandSub '$('> spids: [349 371] ) ) } spids: [346] ) ] spids: [346] ) ] spids: [16777215 331] ) ] spids: [16777215 375] ) (C {(printf)} {(SQ <'%-20s %-*s %6s\\n'>)} {($ VSub_Name '$fct')} {($ VSub_Name '$width')} {($ VSub_Name '$file')} {($ VSub_Name '$line')} ) ] spids: [271] ) spids: [267 270] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COLUMNS) op: Equal rhs: { (BracedVarSub token: <VSub_Name COLUMNS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(80)}) spids: [400 404] ) } spids: [399] ) ] spids: [399] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TERMINAL_PROG) op: Equal rhs: { (BracedVarSub token: <VSub_Name TERMINAL_PROG> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(xterm)}) spids: [411 415] ) } spids: [410] ) ] spids: [410] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:data) op:Equal rhs:{(SQ )} spids:[421])] spids: [421] ) (While cond: [ (Sentence child: (C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(0)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(--d)} {(--da)} {(--dat)} {(--data)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(1)}) terminator: <Op_Semi ';'> ) ] action: [(C {(do_missing_arg)} {($ VSub_Number '$1')})] spids: [16777215 477] ) ] spids: [16777215 485] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:data) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [491] ) ] spids: [491] ) ] spids: [450 463 497 16777215] ) (case_arm pat_list: [ {(--d) (Lit_Other '=') (Lit_Other '*')} {(--da) (Lit_Other '=') (Lit_Other '*')} {(--dat) (Lit_Other '=') (Lit_Other '*')} {(--data) (Lit_Other '=') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:data) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*=')}) spids: [525 529] ) } spids: [524] ) ] spids: [524] ) ] spids: [500 521 532 16777215] ) (case_arm pat_list: [ {(-) (EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)} {(--h)} {(--he)} {(--hel)} {(--help)} ] action: [(C {(do_help)})] spids: [535 553 559 16777215] ) (case_arm pat_list: [ {(-V)} {(--v)} {(--ve)} {(--ver)} {(--vers)} {(--versi)} {(--versio)} {(--version)} ] action: [(C {(do_version)})] spids: [562 591 597 16777215] ) (case_arm pat_list: [{(--u)} {(--us)} {(--usa)} {(--usag)} {(--usage)}] action: [(C {(do_usage)})] spids: [600 617 623 16777215] ) (case_arm pat_list: [{(--)}] action: [(C {(shift)}) (ControlFlow token:<ControlFlow_Break break>)] spids: [626 627 640 16777215] ) (case_arm pat_list: [{(--) (Lit_Other '*')}] action: [ (SimpleCommand words: [ {(printf)} { (DQ ('xtrace: unrecognized option ') (EscapedLiteralPart token: <Lit_EscapedChar '\\`'> ) ($ VSub_Number '$1') ("'") (Lit_Other '\\') (n) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[650])] ) (C {(help_info)}) ] spids: [643 645 666 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [669 670 680 16777215] ) ] spids: [441 447 683] ) (C {(shift)}) ] spids: [438 688] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(printf)} {(DQ ('No program name given') (Lit_Other '\\') (n))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[710])] ) (C {(help_info)}) ] spids: [16777215 705] ) ] spids: [16777215 722] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:program) op: Equal rhs: {($ VSub_Number '$1')} spids: [728] ) ] spids: [728] ) (C {(shift)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$program'))}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(printf)} { (DQ ('executable ') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ($ VSub_Name '$program') ("' not found") (Lit_Other '\\') (n) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[751])] ) (C {(help_info)}) ] spids: [16777215 746] ) ] spids: [16777215 766] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(KW_Bang '!')} {(-x)} {(DQ ($ VSub_Name '$program'))}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(printf)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ($ VSub_Name '$program') ("' is no executable") (Lit_Other '\\') (n) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[786])] ) (C {(help_info)}) ] spids: [16777215 781] ) ] spids: [16777215 800] ) (C {(printf)} {(DQ ('%-20s %-*s %6s') (Lit_Other '\\') (n))} {(Function)} { (CommandSubPart command_list: (CommandList children:[(C {(expr)} {($ VSub_Name '$COLUMNS')} {(-)} {(30)})]) left_token: <Left_CommandSub '$('> spids: [816 824] ) } {(File)} {(Line)} ) (Sentence child: (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(seq)} {(1)} {($ VSub_Name '$COLUMNS')})]) left_token: <Left_CommandSub '$('> spids: [836 842] ) } ] do_arg_iter: False body: (DoGroup children: [(Sentence child:(C {(printf)} {(-)}) terminator:<Op_Semi ';'>)] spids: [845 852] ) spids: [835 843] ) terminator: <Op_Semi ';'> ) (C {(printf)} {(SQ <'\\n'>)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$data'))}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {($ VSub_Name '$pcprofiledump')} {(DQ ($ VSub_Name '$data'))}) (C {(sed)} {(SQ <'s/this = \\([^,]*\\).*/\\1/'>)}) (C {(addr2line)} {(-fC)} {(-e)} {(DQ ($ VSub_Name '$program'))}) (While cond: [(Sentence child:(C {(read)} {(fct)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(read)} {(file)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$fct'))} {(KW_Bang '!') (Lit_Other '=')} {(SQ <'??'>)} {(-a)} {(DQ ($ VSub_Name '$file'))} {(KW_Bang '!') (Lit_Other '=')} {(SQ <'??:0'>)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(format_line)} {(DQ ($ VSub_Name '$fct'))} {(DQ ($ VSub_Name '$file'))} ) ] spids: [16777215 950] ) ] spids: [16777215 964] ) ] spids: [913 967] ) ) ] negated: False ) ] spids: [16777215 872] ) ] else_action: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fifo) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(-ut)} {(xtrace.XXXXXX)})] ) left_token: <Left_CommandSub '$('> spids: [973 979] ) } spids: [972] ) ] spids: [972] ) (C {(exit)}) ] op_id: Op_DPipe ) (C {(trap)} {(SQ <'rm -f "$fifo"; exit 1'>)} {(HUP)} {(INT)} {(QUIT)} {(TERM)} {(PIPE)}) (AndOr children: [(C {(mkfifo)} {(-m)} {(0600)} {($ VSub_Name '$fifo')}) (C {(exit)} {(1)})] op_id: Op_DPipe ) (Sentence child: (C {($ VSub_Name '$TERMINAL_PROG')} {(-T)} {(DQ ('xtrace - ') ($ VSub_Name '$program') (' ') ($ VSub_Star '$*'))} {(-e)} {(/bin/sh)} {(-c)} { (DQ ('LD_PRELOAD=') ($ VSub_Name '$pcprofileso') (' PCPROFILE_OUTPUT=') ($ VSub_Name '$fifo') (' ') ($ VSub_Name '$program') (' ') ($ VSub_Star '$*') ('; read < ') ($ VSub_Name '$fifo') ) } ) terminator: <Op_Amp '&'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:termpid) op: Equal rhs: {($ VSub_Bang '$!')} spids: [1056] ) ] spids: [1056] ) (Pipeline children: [ (C {($ VSub_Name '$pcprofiledump')} {(-u)} {(DQ ($ VSub_Name '$fifo'))}) (While cond: [(Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$line'))}) (C {(sed)} {(SQ <'s/this = \\([^,]*\\).*/\\1/'>)}) (C {(addr2line)} {(-fC)} {(-e)} {(DQ ($ VSub_Name '$program'))}) ] negated: False ) ] spids: [1078 1110] ) ) (While cond: [(Sentence child:(C {(read)} {(fct)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(read)} {(file)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$fct'))} {(KW_Bang '!') (Lit_Other '=')} {(SQ <'??'>)} {(-a)} {(DQ ($ VSub_Name '$file'))} {(KW_Bang '!') (Lit_Other '=')} {(SQ <'??:0'>)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(format_line)} {(DQ ($ VSub_Name '$fct'))} {(DQ ($ VSub_Name '$file'))}) ] spids: [16777215 1159] ) ] spids: [16777215 1173] ) ] spids: [1122 1176] ) ) ] negated: False ) (C {(read)} {(-p)} { (DQ ('Press return here to close ') ($ VSub_Name '$TERMINAL_PROG') ('(') ($ VSub_Name '$program') (').') ) } ) (SimpleCommand words: [{(echo)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$fifo'))} spids: [1194] ) ] ) (C {(rm)} {(DQ ($ VSub_Name '$fifo'))}) ] spids: [969 1207] ) (C {(exit)} {(0)}) ] )