1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

A couple of fixes when no source info is available

* module/system/vm/assembler.scm (link-debug): If there was no debugging
  info, reset the file register to 0 from its default value of 1 before
  adding the final row.

* module/system/vm/dwarf.scm (line-prog-scan-to-pc): If we rescanned
  from the beginning and still found no source info for this pc, return
  #f instead of the default value of the file register (1).
This commit is contained in:
Andy Wingo 2013-10-10 12:21:55 +02:00
parent 4a6d351979
commit 6b71a76713
2 changed files with 11 additions and 3 deletions

View file

@ -1718,7 +1718,12 @@ it will be added to the GC roots at runtime."
(let lp ((in out) (pc 0) (file 1) (line 1) (col 0))
(match in
(() (end-sequence pc))
(()
(when (null? out)
;; There was no source info in the first place. Set
;; file register to 0 before adding final row.
(set-file 0))
(end-sequence pc))
(((pc* file* line* col*) . in*)
(cond
((and (eqv? file file*) (eqv? line line*) (eqv? col col*))

View file

@ -1397,6 +1397,9 @@
(scan pos* pc* file* line* col*))
((= pc* target-pc)
(finish pos* pc* file* line* col*))
((zero? pc)
;; We scanned from the beginning didn't find any info.
(values #f #f #f #f))
(else
(finish pos pc file line col))))))
(let ((pos (lregs-pos regs))