(command.CommandList children: [ (C {<_Dbg_help_add>} {<debug>} { (DQ <'debug [SCRIPT]\n'> <'\n'> <'Set up SCRIPT for debugging. \n'> <'\n'> <'If SCRIPT is not given, take the script name from the command that is\n'> <'about to be executed.'> ) } ) (command.ShFunction name: _Dbg_do_debug body: (BraceGroup children: [ (C {<_Dbg_shell_new_shell_profile>}) (C {<typeset>} {<Id.Lit_VarLike 'script_cmd='> (braced_var_sub token: <Id.VSub_At '@'> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {($ Id.VSub_DollarName '$_Dbg_bash_command')} ) ) } ) (command.Sentence child: (C {<typeset>} {<Id.Lit_VarLike 'set_Dbg_debug_cmd='> (DQ <'typeset _Dbg_debug_cmd='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$script_cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName '$BASH')}) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASH) op: assign_op.Equal rhs: {(SQ <bash>)} spids: [141] ) ] ) ] ) (C {<eval>} {(DQ ($ Id.VSub_DollarName '$_seteglob'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: <Id.Lit_ArithVarLike _Dbg_script> ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:set_Dbg_debug_cmd) op: assign_op.Equal rhs: { (DQ <'typeset _Dbg_debug_cmd='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$BASH') <' --init-file '> (${ Id.VSub_Name _Dbg_shell_temp_profile) <' --debugger '> ($ Id.VSub_DollarName '$script_cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [180] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [160 173] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$_Dbg_orig_0') <'///'>} right: {<Id.Lit_Other '*'> <'bashdb///'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:set_Dbg_debug_cmd) op: assign_op.Equal rhs: { (DQ <'typeset _Dbg_debug_cmd='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$BASH') <' '> ($ Id.VSub_DollarName '$_Dbg_orig_0') <' -q -L '> ($ Id.VSub_DollarName '$_Dbg_libdir') <' '> ($ Id.VSub_DollarName '$script_cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [219] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [196 212] ) ] ) (C {<eval>} {(DQ ($ Id.VSub_DollarName '$_resteglob'))}) (C {<eval>} {($ Id.VSub_DollarName '$set_Dbg_debug_cmd')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:<Id.Lit_ArithVarLike _Dbg_set_basename>) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_msg>} {(DQ <'Debugging new script with '> ($ Id.VSub_DollarName '$script_cmd'))} ) ] spids: [252 263] ) ] else_action: [ (C {<_Dbg_msg>} {(DQ <'Debugging new script with '> ($ Id.VSub_DollarName '$_Dbg_debug_cmd'))} ) ] ) (C {<typeset>} {<-r>} {<Id.Lit_VarLike 'old_quit_on_quit='> ($ Id.VSub_DollarName '$_Dbg_QUIT_ON_QUIT')} ) (C {<export>} {<Id.Lit_VarLike '_Dbg_QUIT_ON_QUIT='> <1>}) (C {<export>} {<Id.Lit_VarLike 'BASHDB_BASENAME_ONLY='> (DQ ($ Id.VSub_DollarName '$_Dbg_set_basename')) } ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike _Dbg_DEBUGGER_LEVEL> ) ) (C {($ Id.VSub_DollarName '$_Dbg_debug_cmd')}) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: <Id.Lit_ArithVarLike _Dbg_DEBUGGER_LEVEL> ) ) (C {<_Dbg_restore_from_nested_shell>}) (C {<export>} {<Id.Lit_VarLike '_Dbg_QUIT_ON_QUIT='> ($ Id.VSub_DollarName '$old_quit_on_quit')} ) ] ) ) ] )