(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Number '$0') (': missing program name'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (SimpleCommand words: [ {(echo)} { (DQ ('Try ') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ($ VSub_Number '$0') (" --help' for more information.") ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 60] ) ] spids: [16777215 91] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prog) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [94] ) ] spids: [94] ) (C {(shift)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Pound '$#')} {(-eq)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ ($ VSub_Name '$prog'))} arms: [ (case_arm pat_list: [{(--h)} {(--he)} {(--hel)} {(--help)}] action: [ (C {(echo)} {(SQ <'Usage: catchsegv PROGRAM ARGS...'>)}) (C {(echo)} {(SQ <' --help print this help, then exit'>)}) (C {(echo)} {(SQ <' --version print version number, then exit'>)}) (C {(echo)} {(SQ <'For bug reporting instructions, please see:'>)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)} here_end_span_id: 176 stdin_parts: [('@REPORT_BUGS_TO@.\n')] ) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [125 138 183 16777215] ) (case_arm pat_list: [{(--v)} {(--ve)} {(--ver)} {(--vers)} {(--versi)} {(--versio)} {(--version)}] action: [ (C {(echo)} {(SQ <'catchsegv @PKGVERSION@@VERSION@'>)}) (C {(echo)} { (SQ <'Copyright (C) 2016 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'> <'Written by Ulrich Drepper.'> ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [186 211 236 16777215] ) (case_arm pat_list:[{(Lit_Other '*')}] spids:[239 240 243 16777215]) ] spids: [116 122 246] ) ] spids: [16777215 113] ) ] spids: [16777215 248] ) (AndOr ops: [Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:segv_output) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(mktemp)} { (BracedVarSub token: <VSub_Name TMPDIR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (tmp)} ) spids: [255 260] ) (/segv_output.XXXXXX) } ) ] ) left_token: <Left_Backtick '`'> spids: [252 262] ) } spids: [251] ) ] spids: [251] ) (ControlFlow token:<ControlFlow_Exit exit>) ] ) (Subshell child: (CommandList children: [ (SimpleCommand words: [{(exec)}] redirects: [ (Redir op:<Redir_GreatAnd '3>&'> fd:3 arg_word:{(2)}) (Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)}) ] ) (SimpleCommand words: [ {(DQ ($ VSub_Name '$prog'))} { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))}) spids: [308 314] ) } ] redirects: [ (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(3)}) (Redir op:<Redir_GreatAnd '3>&'> fd:3 arg_word:{(-)}) ] more_env: [ (env_pair name: LD_PRELOAD val: { (BracedVarSub token: <VSub_Name LD_PRELOAD> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(${ VSub_Name LD_PRELOAD) (':')} ) spids: [282 289] ) (Lit_Other '@') (SLIB) (Lit_Other '@') (/libSegFault.so) } spids: [281] ) (env_pair name:SEGFAULT_USE_ALTSTACK val:{(1)} spids:[296]) (env_pair name: SEGFAULT_OUTPUT_NAME val: {($ VSub_Name '$segv_output')} spids: [300] ) ] ) ] ) spids: [272 321] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exval) op:Equal rhs:{($ VSub_QMark '$?')} spids:[323])] spids: [323] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-s)} {(DQ ($ VSub_Name '$segv_output'))}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {($ VSub_Name '$prog')} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/) (Lit_Other '*')}] spids: [373 376 378 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:old_IFS) op: Equal rhs: {($ VSub_Name '$IFS')} spids: [385] ) ] spids: [385] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [389] ) ] spids: [389] ) (ForEach iter_name: p iter_words: [{($ VSub_Name '$PATH')}] do_arg_iter: F body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-n)} {(DQ ($ VSub_Name '$p'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: {(.)} spids: [415] ) ] spids: [415] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-f)} {(DQ ($ VSub_Name '$p') (/) ($ VSub_Name '$prog'))} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prog) op: Equal rhs: {($ VSub_Name '$p') (/) ($ VSub_Name '$prog')} spids: [435] ) ] spids: [435] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 432] ) ] spids: [16777215 444] ) ] spids: [402 447] ) spids: [398 400] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {($ VSub_Name '$old_IFS')} spids: [450] ) ] spids: [450] ) ] spids: [381 382 454 16777215] ) ] spids: [366 370 457] ) (C {(sed)} {(SQ </Backtrace/q>)} {(DQ ($ VSub_Name '$segv_output'))}) (Pipeline children: [ (C {(sed)} {(SQ <'1,/Backtrace/d'>)} {(DQ ($ VSub_Name '$segv_output'))}) (Subshell child: (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:line) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$line')}) (C {(sed)} { (DQ ('s@^') ($ VSub_Name '$prog') (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) ('(') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('[.*') (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) (')@') (Lit_Other '\\') ('1@') ) } ) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [496 517] ) } spids: [495] ) ] spids: [495] ) (Case to_match: {(DQ ($ VSub_Name '$line'))} arms: [ (case_arm pat_list: [ {(EscapedLiteralPart token:<Lit_EscapedChar '\\['>) (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:addr) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$line'))}) (C {(sed)} {(SQ <'s/^\\[\\(.*\\)\\]$/\\1/'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [534 548] ) } spids: [533] ) ] spids: [533] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:complete) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(addr2line)} {(-f)} {(-e)} {(DQ ($ VSub_Name '$prog'))} {($ VSub_Name '$addr')} ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [552 567] ) } spids: [551] ) ] spids: [551] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_QMark '$?')} {(-eq)} {(0)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$complete'))} ) (C {(sed)} { (SQ < 'N;s/\\(.*\\)\\n\\(.*\\)/\\2(\\1)/;' > ) } ) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [587 599] ) ($ VSub_Name '$line') ) } ) ] spids: [16777215 581] ) ] else_action: [(C {(echo)} {(DQ ($ VSub_Name '$line'))})] spids: [604 614] ) ] spids: [529 531 617 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(echo)} {(DQ ($ VSub_Name '$line'))})] spids: [620 621 630 16777215] ) ] spids: [520 526 633] ) ] spids: [492 636] ) ) spids: [484 637] ) ] negated: F ) ] spids: [16777215 347] ) ] spids: [16777215 639] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$segv_output'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$exval')}) ] )