[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: guile-debugger-0.5 released [was Re: What debugger breakpoint feat
From: |
Neil Jerram |
Subject: |
Re: guile-debugger-0.5 released [was Re: What debugger breakpoint features would you like?] |
Date: |
03 Mar 2002 22:52:31 +0000 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
>>>>> "Neil" == Neil Jerram <address@hidden> writes:
Neil> I'm very happy to announce the release of guile-debugger-0.5. It is
Neil> available from my Guile page at http://www.ossau.uklinux.net/guile/.
Neil> [...]
If anyone's trying this out, and finding source breakpoints not
working, try the patch below. (Source properties are broken in
guile-core, and I forgot that I had fixed my copy of unstable
accordingly.)
Neil
cd /home/neil/Guile/guile-debugger/ossau/breakpoints/
diff -u /home/neil/Downloads/guile-debugger-0.5/ossau/breakpoints/source.scm
/home/neil/Guile/guile-debugger/ossau/breakpoints/source.scm
--- /home/neil/Downloads/guile-debugger-0.5/ossau/breakpoints/source.scm
Sat Mar 2 15:06:19 2002
+++ /home/neil/Guile/guile-debugger/ossau/breakpoints/source.scm Sun Mar
3 22:38:19 2002
@@ -114,13 +114,32 @@
(bp-message bp "Set breakpoint" #t)
bp)))
+;; As of 2002-03-03, source properties are broken (all branches) if
+;; you try to define any properties that would go into the plist of
+;; the srcprops object. I hope to fix this soon (in guile-core), but
+;; in the mean time we can detect the problem like this. The
+;; workaround (in `install-breakpoint' below) is not to set the 'lbp
+;; property, which means that the mechanism for detecting zombie
+;; breakpoints will not work.
+(define working-source-properties?
+ (let ((l (list 1 2 3)))
+ (set-source-property! l 'breakpoint #t)
+ (set-source-property! l 'lbp #t)
+ (catch #t
+ (lambda ()
+ (and (source-property l 'breakpoint)
+ (source-property l 'lbp)))
+ (lambda ignored
+ #f))))
+
(define (install-breakpoint x bp)
;; Make the necessary connections with the specified expression and
;; its breakpoint.
- (let ((lbp (vector bp)))
- (set-source-property! x 'breakpoint #t)
- (set-source-property! x 'lbp lbp)
- (source-guardian lbp))
+ (set-source-property! x 'breakpoint #t)
+ (if working-source-properties?
+ (let ((lbp (vector bp)))
+ (set-source-property! x 'lbp lbp)
+ (source-guardian lbp)))
(set! (bp-use-count bp) (+ (bp-use-count bp) 1))
(remove/install-source-breakpoint-hooks))
Diff finished at Sun Mar 3 22:41:44