summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-03-17 22:32:18 +0100
committerLudovic Courtès <ludo@gnu.org>2020-03-17 22:57:41 +0100
commita0aa8f01ccc1fd1da6d109daf9e13b0c530dd278 (patch)
tree7d2557b81f3b8d059d3e210bef422810d2b6562b
parent62d1335a613dc140d3d147ee0bc83b1a6072d08d (diff)
downloadguile-a0aa8f01ccc1fd1da6d109daf9e13b0c530dd278.tar.gz
gdb: Adjust 'find-vp' for Guile 3.0.
* libguile/libguile-3.0-gdb.scm (find-vp): Adjust for Guile 3.0.
-rw-r--r--libguile/libguile-3.0-gdb.scm11
1 files changed, 6 insertions, 5 deletions
diff --git a/libguile/libguile-3.0-gdb.scm b/libguile/libguile-3.0-gdb.scm
index d3c99f7d8..869b68f19 100644
--- a/libguile/libguile-3.0-gdb.scm
+++ b/libguile/libguile-3.0-gdb.scm
@@ -207,11 +207,12 @@ if the information is not available."
(define (find-vp)
"Find the scm_vm pointer for the current thread."
- (let loop ((frame (newest-frame)))
- (and frame
- (if (vm-engine-frame? frame)
- (frame-read-var frame "vp")
- (loop (frame-older frame))))))
+ (match (lookup-symbol "scm_i_current_thread")
+ ((#f _)
+ #f)
+ ((symbol _)
+ (let ((thread (symbol-value symbol)))
+ (value-field thread "vm")))))
(define (newest-vm-frame)
"Return the newest VM frame or #f."