diff options
Diffstat (limited to 'module/system/vm')
-rw-r--r-- | module/system/vm/assembler.scm | 8 | ||||
-rw-r--r-- | module/system/vm/debug.scm | 9 |
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))) |