File tree Expand file tree Collapse file tree 2 files changed +30
-3
lines changed Expand file tree Collapse file tree 2 files changed +30
-3
lines changed Original file line number Diff line number Diff line change 3838_n_: Next _ss_: Session _bb_: Toggle _dd_: Debug _ee_: Eval
3939_i_: Step in _st_: Thread _bd_: Delete _dr_: Debug recent _er_: Eval region
4040_o_: Step out _sf_: Stack frame _ba_: Add _dl_: Debug last _es_: Eval thing at point
41- _c_: Continue _sl_: List locals _bc_: Set condition _de_: Edit debug template _ea_: Add expression.
42- _r_: Restart frame _sb_: List breakpoints _bh_: Set hit count
43- _Q_: Disconnect _sS_: List sessions _bl_: Set log message
41+ _c_: Continue _su_: Up stack frame _bc_: Set condition _de_: Edit debug template _ea_: Add expression.
42+ _r_: Restart frame _sd_: Down stack frame _bh_: Set hit count
43+ _Q_: Disconnect _sl_: List locals _bl_: Set log message
44+ _sb_: List breakpoints
45+ _sS_: List sessions
4446"
4547 (" n" dap-next)
4648 (" i" dap-step-in)
@@ -50,6 +52,8 @@ _Q_: Disconnect _sS_: List sessions _bl_: Set log message
5052 (" ss" dap-switch-session)
5153 (" st" dap-switch-thread)
5254 (" sf" dap-switch-stack-frame)
55+ (" su" dap-up-stack-frame)
56+ (" sd" dap-down-stack-frame)
5357 (" sl" dap-ui-locals)
5458 (" sb" dap-ui-breakpoints)
5559 (" sS" dap-ui-sessions)
Original file line number Diff line number Diff line change @@ -1335,6 +1335,29 @@ RESULT to use for the callback."
13351335 error ))
13361336 (error " No thread is currently active %s " (dap--debug-session-name (dap--cur-session)))))
13371337
1338+ (defun dap-up-stack-frame (frames )
1339+ " Switch stackframe up FRAMES frames on the current thread.
1340+ A negative value will move down frames."
1341+ (interactive " p" )
1342+ (-if-let* ((session (dap--cur-session-or-die))
1343+ (thread-id (dap--debug-session-thread-id session))
1344+ (stack-frames (gethash thread-id
1345+ (dap--debug-session-thread-stack-frames session)))
1346+ (cur-frame (dap--debug-session-active-frame session))
1347+ (pos (cl-position cur-frame stack-frames))
1348+ (len (length stack-frames))
1349+ (new-pos (min (1- len) (max 0 (+ pos frames)))))
1350+ (if (eq pos new-pos)
1351+ (error " Already at the %s of the stack " (if (<= pos 0 ) " bottom" " top" ))
1352+ (dap--go-to-stack-frame session (nth new-pos stack-frames)))
1353+ (error " Unable to find active session, thread, or frame. " )))
1354+
1355+ (defun dap-down-stack-frame (frames )
1356+ " Switch stackframe down FRAMES frames on the current thread.
1357+ A negative value will move up frames."
1358+ (interactive " p" )
1359+ (dap-up-stack-frame (- frames)))
1360+
13381361(defun dap--calculate-unique-name (debug-session-name debug-sessions )
13391362 " Calculate unique name with prefix DEBUG-SESSION-NAME.
13401363DEBUG-SESSIONS - list of the currently active sessions."
You can’t perform that action at this time.
0 commit comments