(command.CommandList children: [ (C {(_Dbg_help_add)} {(frame)} { (SQ (Token id:Id.Lit_Chars val:'**frame** [*frame-number*].\n' span_id:71) (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id: Id.Lit_Chars val: 'Change the current frame to frame *frame-numbrer* if specified, or the\n' span_id: 73 ) (Token id:Id.Lit_Chars val:'most-recent frame, 0, if no frame number specified.\n' span_id:74) (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'A negative number indicates the position from the other or\n' span_id:76) (Token id: Id.Lit_Chars val: 'least-recently-entered end. So **frame -1** moves to the oldest frame.\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:'See also:\n' span_id:79) (Token id:Id.Lit_Chars val:'---------\n' span_id:80) (Token id:Id.Lit_Chars val:'\n' span_id:81) (Token id:Id.Lit_Chars val:'**up**, **down**' span_id:82) ) } {(1)} {(_Dbg_complete_frame)} ) (command.ShFunction name: _Dbg_complete_frame body: (command.BraceGroup children: [ (command.Sentence child: (C {(typeset)} {(-i)} {(start)}) terminator: (Token id:Id.Op_Semi val:';' span_id:105) ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:start) right: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:_Dbg_stack_size span_id:111) ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) (command.Sentence child: (C {(typeset)} {(-i)} {(end)}) terminator: (Token id:Id.Op_Semi val:';' span_id:123) ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:end) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:_Dbg_stack_size span_id:128) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) (C {(_Dbg_complete_num_range)} {($ Id.VSub_DollarName '$start')} {($ Id.VSub_DollarName '$end')} ) ] ) ) (command.ShFunction name: _Dbg_do_frame body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(_Dbg_not_running)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:155) arg_word: {(3)} ) ] ) (C {(typeset)} {(Id.Lit_VarLike 'count=') (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:164) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(1)}) ) } ) (C {(_Dbg_is_signed_int)} {($ Id.VSub_DollarName '$count')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) right: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:188) ) ] action: [ (C {(_Dbg_frame_adjust)} {($ Id.VSub_DollarName '$count')} {(0)}) (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'rc=') ($ Id.VSub_QMark '$?')}) ] spids: [175 190] ) ] else_action: [ (C {(_Dbg_errmsg)} {(DQ ('Expecting an integer; got ') ($ Id.VSub_DollarName '$count'))}) (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'rc=') (2)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) right: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:rc span_id:235) ) ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:frame span_id:243))} spids: [241] ) ] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:247) arg_word: {($ Id.VSub_DollarName '$rc')} ) ] ) ) ] )