summaryrefslogtreecommitdiff
path: root/module/system/repl/debug.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/system/repl/debug.scm')
-rw-r--r--module/system/repl/debug.scm34
1 files changed, 33 insertions, 1 deletions
diff --git a/module/system/repl/debug.scm b/module/system/repl/debug.scm
index 1164c6bb5..01b1b4cec 100644
--- a/module/system/repl/debug.scm
+++ b/module/system/repl/debug.scm
@@ -34,7 +34,29 @@
print-locals print-frame print-frames frame->module
stack->vector narrow-stack->vector))
-;;; FIXME: add more repl meta-commands: continue, inspect, etc...
+;; TODO:
+;;
+;; Update this TODO list ;)
+;; partial meta-commands (,qui -> ,quit)
+;; eval expression in context of frame
+;; set local variable in frame
+;; step until next instruction
+;; step until next function call/return
+;; step until return from frame
+;; step until different source line
+;; step until greater source line
+;; watch expression
+;; break on a function
+;; remove breakpoints
+;; set printing width
+;; display a truncated backtrace
+;; go to a frame by index
+;; (reuse gdb commands perhaps)
+;; disassemble a function
+;; disassemble the current function
+;; inspect any object
+;; hm, trace via reassigning global vars. tricksy.
+;; (state associated with vm ?)
;;;
;;; Debugger
@@ -175,3 +197,13 @@
(define (narrow-stack->vector stack . args)
(stack->vector (apply make-stack (stack-ref stack 0) args)))
+;; (define (debug)
+;; (run-debugger
+;; (narrow-stack->vector
+;; (make-stack #t)
+;; ;; Narrow the `make-stack' frame and the `debug' frame
+;; 2
+;; ;; Narrow the end of the stack to the most recent start-stack.
+;; (and (pair? (fluid-ref %stacks))
+;; (cdar (fluid-ref %stacks))))))
+