guile-user
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]