summaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-03-01 16:06:53 +0100
committerAndy Wingo <wingo@pobox.com>2017-03-01 16:06:53 +0100
commit374b88580c388af1e96ff82cedd2b6f9a708580b (patch)
tree1ca5fd2e580c42c806d741fce0cf1450a385dd86 /module
parent77cfd7e4bfbf8271a5b75a62bbad3ce0bf79f209 (diff)
Fix trap frame matching
* module/system/vm/traps.scm (program-last-ip): Actually return an absolute IP. Fixes traps!
Diffstat (limited to 'module')
-rw-r--r--module/system/vm/traps.scm4
1 files changed, 3 insertions, 1 deletions
diff --git a/module/system/vm/traps.scm b/module/system/vm/traps.scm
index db82a0ab9..c4861c925 100644
--- a/module/system/vm/traps.scm
+++ b/module/system/vm/traps.scm
@@ -110,7 +110,9 @@
;; Returns an absolute IP.
(define (program-last-ip prog)
(let ((pdi (find-program-debug-info (program-code prog))))
- (and pdi (program-debug-info-size pdi))))
+ (and pdi
+ (+ (program-debug-info-addr pdi)
+ (program-debug-info-size pdi)))))
(define (frame-matcher proc)
(let ((proc (if (struct? proc)