diff options
author | Andy Wingo <wingo@pobox.com> | 2013-08-29 20:43:03 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-08-29 20:44:55 +0200 |
commit | 610295ec9dbf3c21a59b4e579d0889ca90c499e6 (patch) | |
tree | 245b72298916e45f716ee8d76e28b0b5e3d70b32 /module/scripts | |
parent | c96933fd544aaf14776a1fc3a2986afc6fecb00c (diff) | |
download | guile-610295ec9dbf3c21a59b4e579d0889ca90c499e6.tar.gz |
add ability to disassemble ELF images
* module/scripts/disassemble.scm (disassemble): Update to work with
RTl (and only RTL, as that's the future).
* module/system/vm/debug.scm (for-each-elf-symbol): New public
interface.
(debug-context-from-image): New helper.
(find-debug-context): Use the helper.
* module/system/vm/disassembler.scm (disassemble-image): New public
interface.
Diffstat (limited to 'module/scripts')
-rw-r--r-- | module/scripts/disassemble.scm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/module/scripts/disassemble.scm b/module/scripts/disassemble.scm index 094d65654..3825bc118 100644 --- a/module/scripts/disassemble.scm +++ b/module/scripts/disassemble.scm @@ -1,6 +1,6 @@ ;;; Disassemble --- Disassemble .go files into something human-readable -;; Copyright 2005, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. +;; Copyright 2005, 2008, 2009, 2011, 2012, 2013 Free Software Foundation, Inc. ;; ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public License @@ -22,12 +22,14 @@ ;;; Commentary: -;; Usage: disassemble [ARGS] +;; Usage: disassemble FILE... ;;; Code: (define-module (scripts disassemble) #:use-module (system vm objcode) + #:use-module (system vm program) + #:use-module (system vm disassembler) #:use-module ((language assembly disassemble) #:renamer (symbol-prefix-proc 'asm:)) #:export (disassemble)) @@ -36,7 +38,9 @@ (define (disassemble . files) (for-each (lambda (file) - (asm:disassemble (load-thunk-from-file file))) + (let* ((thunk (load-thunk-from-file file)) + (elf (find-mapped-elf-image (rtl-program-code thunk)))) + (disassemble-image elf))) files)) (define main disassemble) |