1 ;;; Guile VM debugging facilities
3 ;; Copyright (C) 2001 Free Software Foundation, Inc.
5 ;; This program is free software; you can redistribute it and/or modify
6 ;; it under the terms of the GNU General Public License as published by
7 ;; the Free Software Foundation; either version 2, or (at your option)
10 ;; This program is distributed in the hope that it will be useful,
11 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ;; GNU General Public License for more details.
15 ;; You should have received a copy of the GNU General Public License
16 ;; along with this program; see the file COPYING. If not, write to
17 ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 ;; Boston, MA 02111-1307, USA.
22 (define-module (system vm debug)
23 #:use-syntax (system base syntax)
24 #:use-module (system vm vm)
25 #:use-module (system vm frame)
26 #:use-module (ice-9 format)
27 #:export (vm-debugger vm-backtrace))
34 (define-record (<debugger> vm chain index))
36 (define (vm-debugger vm)
37 (let ((chain (vm-last-frame-chain vm)))
39 (display "Nothing to debug\n")
40 (debugger-repl (make-debugger
41 #:vm vm #:chain chain #:index (length chain))))))
43 (define (debugger-repl db)
48 ((bt) (vm-backtrace (debugger-vm db)))
50 (write (vm-fetch-stack (debugger-vm db)))
53 (format #t "Unknown command: ~A" cmd))))))
60 (define (vm-backtrace vm)
61 (print-frame-chain-as-backtrace
62 (reverse (vm-last-frame-chain vm))))