home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
s
/
s48.zip
/
MISC
/
DEBUGINF.SCM
< prev
next >
Wrap
Text File
|
1992-06-17
|
1KB
|
56 lines
; Copyright (c) 1992 by Richard Kelsey and Jonathan Rees. See file COPYING.
; Reading/writing debugging info
(define (write-debug-info file)
(call-with-output-file file
(lambda (port)
(table-walk (lambda (id name)
(write (list id (name->symbol name)) port)
(newline port))
location-name-table)
(write '- port) (newline port)
(table-walk (lambda (id data)
;; Fields: (uid name parent pc-in-parent
;; env-maps source)
(write (list id
(name->symbol (debug-data-name data))
(let ((p (debug-data-parent data)))
;; we'd like to (note-debug-data! p)
(if (debug-data? p)
(debug-data-uid p)
p))
(debug-data-pc-in-parent data)
(debug-data-env-maps data)
;; Don't retain source code, right?
)
port)
(newline port))
debug-data-table)
(write '- port) (newline port))))
(define (read-debug-info file)
(call-with-input-file file
(lambda (port)
(let loop ()
(let ((z (read port)))
(if (pair? z)
(begin ;; (set! *location-uid*
;; (max *location-uid* (+ (car z) 1)))
(table-set! location-name-table (car z) (cadr z))
(loop)))))
(let loop ()
(let ((z (read port)))
(if (pair? z)
(begin ;; (set! *template-uid*
;; (max *template-uid* (+ (car z) 1)))
(table-set! debug-data-table
(car z)
(apply make-debug-data
(append z '(()))))
(loop))))))))