1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

Add runtime support for reading debug information from ELF

* module/Makefile.am:
* module/system/vm/debug.scm: New module.

* module/system/vm/elf.scm (elf-section-by-name): New helper.
  (elf-symbol-table-len): New helper.

* test-suite/tests/rtl.test: Add test for finding debug info.
This commit is contained in:
Andy Wingo 2013-05-01 22:17:51 +02:00
parent e78991aa36
commit cb86cbd71d
4 changed files with 203 additions and 3 deletions

View file

@ -18,7 +18,9 @@
(define-module (tests rtl)
#:use-module (test-suite lib)
#:use-module (system vm assembler))
#:use-module (system vm assembler)
#:use-module (system vm program)
#:use-module (system vm debug))
(define-syntax-rule (assert-equal val expr)
(let ((x val))
@ -247,3 +249,22 @@
(end-program)))))
((make-top-incrementor))
*top-val*))))
(with-test-prefix "debug contexts"
(let ((return-3 (assemble-program
'((begin-program return-3)
(assert-nargs-ee/locals 0 1)
(load-constant 0 3)
(return 0)
(end-program)))))
(pass-if "program name"
(and=> (find-program-debug-info (rtl-program-code return-3))
(lambda (pdi)
(equal? (program-debug-info-name pdi)
'return-3))))
(pass-if "program address"
(and=> (find-program-debug-info (rtl-program-code return-3))
(lambda (pdi)
(equal? (program-debug-info-addr pdi)
(rtl-program-code return-3)))))))