summaryrefslogtreecommitdiff
path: root/module/system/vm
diff options
context:
space:
mode:
Diffstat (limited to 'module/system/vm')
-rw-r--r--module/system/vm/assembler.scm8
-rw-r--r--module/system/vm/debug.scm9
2 files changed, 8 insertions, 9 deletions
diff --git a/module/system/vm/assembler.scm b/module/system/vm/assembler.scm
index fc870e692..f1663c010 100644
--- a/module/system/vm/assembler.scm
+++ b/module/system/vm/assembler.scm
@@ -1490,9 +1490,9 @@ it will be added to the GC roots at runtime."
;;; The .guile.docstrs section is a packed, sorted array of (pc, str)
;;; values. Pc and str are both 32 bits wide. (Either could change to
;;; 64 bits if appropriate in the future.) Pc is the address of the
-;;; entry to a program, relative to the start of the text section, and
-;;; str is an index into the associated .guile.docstrs.strtab string
-;;; table section.
+;;; entry to a program, relative to the start of the text section, in
+;;; bytes, and str is an index into the associated .guile.docstrs.strtab
+;;; string table section.
;;;
;; The size of a docstrs entry, in bytes.
@@ -1508,7 +1508,7 @@ it will be added to the GC roots at runtime."
(and tail
(not (find-tail is-documentation? (cdr tail)))
(string? (cdar tail))
- (cons (meta-low-pc meta) (cdar tail)))))
+ (cons (* 4 (meta-low-pc meta)) (cdar tail)))))
(reverse (asm-meta asm))))
(let* ((endianness (asm-endianness asm))
(docstrings (find-docstrings))
diff --git a/module/system/vm/debug.scm b/module/system/vm/debug.scm
index 8eb423748..a0f11223b 100644
--- a/module/system/vm/debug.scm
+++ b/module/system/vm/debug.scm
@@ -402,15 +402,14 @@ section of the ELF image. Returns an ELF symbol, or @code{#f}."
(let lp ((pos start))
(cond
((>= pos end) #f)
- ((< text-offset (bytevector-u32-native-ref bv pos))
+ ((< (bytevector-u32-native-ref bv pos) text-offset)
(lp (+ pos docstr-len)))
- ((> text-offset (bytevector-u32-native-ref bv pos))
- #f)
- (else
+ ((= text-offset (bytevector-u32-native-ref bv pos))
(let ((strtab (elf-section (debug-context-elf context)
(elf-section-link sec)))
(idx (bytevector-u32-native-ref bv (+ pos 4))))
- (string-table-ref bv (+ (elf-section-offset strtab) idx))))))))))
+ (string-table-ref bv (+ (elf-section-offset strtab) idx))))
+ (else #f)))))))
(define* (find-program-properties addr #:optional
(context (find-debug-context addr)))