1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-22 19:44:10 +02:00
guile/module/system/vm
Andy Wingo 581a4eb82b frame-instruction-pointer is absolute; rewrite (system vm coverage)
* libguile/frames.c (scm_frame_source): Instead of assuming that
  scm_frame_procedure is correct, use the IP to get the source.
  (scm_frame_instruction_pointer): Return an absolute value instead of
  assuming that slot 0 is correct.  (It isn't, when preparing for a tail
  call.)

* libguile/programs.h:
* libguile/programs.c (scm_find_source_for_addr): New internal helper.

* module/system/repl/debug.scm (print-registers): Readably print
  absolute instruction pointers.

* module/system/vm/coverage.scm: Complete rewrite to use absolute IP's.
  We can't assume that frame-procedure is cheap if it is correct, or
  correct if it is cheap.  Anyway using the address is better anyway.
  (coverage-data->lcov): Disable per-function info temporarily.
  (loaded-modules, module-procedures, closest-source-line)
  (closed-over-procedures): Remove these.  Instead of going from
  procedures to source info, now we go from ELF image to source info.

* module/system/vm/debug.scm (debug-context-length): New interface.

* module/system/vm/program.scm (source-for-addr): New internal helper.
2013-11-07 23:03:45 +01:00
..
assembler.scm Fix line advance DWARF opcodes when line advance is exactly 128 2013-11-07 11:10:36 +01:00
coverage.scm frame-instruction-pointer is absolute; rewrite (system vm coverage) 2013-11-07 23:03:45 +01:00
debug.scm frame-instruction-pointer is absolute; rewrite (system vm coverage) 2013-11-07 23:03:45 +01:00
disassembler.scm RTL compiler supports static bitvectors 2013-11-03 21:48:48 +01:00
dwarf.scm DWARF return arity fixen 2013-10-29 22:53:46 +01:00
elf.scm Add runtime support for reading debug information from ELF 2013-06-09 19:50:30 +02:00
frame.scm Program sources are always pre-retire now 2013-11-07 18:00:40 +01:00
inspect.scm more define-syntax-rule usage 2011-09-02 11:36:14 +02:00
instruction.scm add new rtl vm 2013-05-31 09:48:16 -04:00
linker.scm linker string tables are stateful objects 2013-06-09 16:04:12 +02:00
objcode.scm add fold-all-debug-contexts, fold-source-locations 2013-11-07 17:53:04 +01:00
program.scm frame-instruction-pointer is absolute; rewrite (system vm coverage) 2013-11-07 23:03:45 +01:00
trace.scm pop-continuation abort-continuation hooks pass return vals directly 2013-05-27 07:13:13 +02:00
trap-state.scm Program sources are always pre-retire now 2013-11-07 18:00:40 +01:00
traps.scm Procedure traps work with RTL programs. 2013-10-17 23:20:32 +02:00
vm.scm add call-with-vm; remove thread-vm bits; remove vm-apply; engines settable. 2010-09-27 21:12:29 +02:00