diff options
author | Andy Wingo <wingo@pobox.com> | 2013-08-29 20:50:19 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-08-29 20:50:19 +0200 |
commit | 93009a7acaf172d1e9a8b3763cf83e616567a04f (patch) | |
tree | 3f1207f77b4268898dcc2f528026ed301e13dffb | |
parent | 610295ec9dbf3c21a59b4e579d0889ca90c499e6 (diff) | |
download | guile-93009a7acaf172d1e9a8b3763cf83e616567a04f.tar.gz |
,xx for RTL images
* module/scripts/disassemble.scm (disassemble):
* module/system/vm/disassembler.scm (disassemble-file): Factor
disassemble-file out.
* module/system/repl/command.scm (disassemble-file): Map ,xx to
disassemble RTL images.
-rw-r--r-- | module/scripts/disassemble.scm | 10 | ||||
-rw-r--r-- | module/system/repl/command.scm | 5 | ||||
-rw-r--r-- | module/system/vm/disassembler.scm | 8 |
3 files changed, 12 insertions, 11 deletions
diff --git a/module/scripts/disassemble.scm b/module/scripts/disassemble.scm index 3825bc118..426f87c59 100644 --- a/module/scripts/disassemble.scm +++ b/module/scripts/disassemble.scm @@ -27,20 +27,12 @@ ;;; 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)) (define %summary "Disassemble a compiled .go file.") (define (disassemble . files) - (for-each (lambda (file) - (let* ((thunk (load-thunk-from-file file)) - (elf (find-mapped-elf-image (rtl-program-code thunk)))) - (disassemble-image elf))) - files)) + (for-each disassemble-file files)) (define main disassemble) diff --git a/module/system/repl/command.scm b/module/system/repl/command.scm index 215451ec7..e084cf17a 100644 --- a/module/system/repl/command.scm +++ b/module/system/repl/command.scm @@ -487,6 +487,9 @@ Run the optimizer on a piece of code and print the result." (define (disassemble-program x) ((@ (system vm disassembler) disassemble-program) x)) +(define (disassemble-file x) + ((@ (system vm disassembler) disassemble-file) x)) + (define-meta-command (disassemble repl (form)) "disassemble EXP Disassemble a compiled procedure." @@ -503,7 +506,7 @@ Disassemble a compiled procedure." (define-meta-command (disassemble-file repl file) "disassemble-file FILE Disassemble a file." - (guile:disassemble (load-thunk-from-file (->string file)))) + (disassemble-file (->string file))) ;;; diff --git a/module/system/vm/disassembler.scm b/module/system/vm/disassembler.scm index 482d68f36..ad7bb2b76 100644 --- a/module/system/vm/disassembler.scm +++ b/module/system/vm/disassembler.scm @@ -32,7 +32,8 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-4) #:export (disassemble-program - disassemble-image)) + disassemble-image + disassemble-file)) (define-syntax-rule (u32-ref buf n) (bytevector-u32-native-ref buf (* n 4))) @@ -357,3 +358,8 @@ address of that offset." ctx) (display "\n\n" port))))) (values)) + +(define (disassemble-file file) + (let* ((thunk (load-thunk-from-file file)) + (elf (find-mapped-elf-image (rtl-program-code thunk)))) + (disassemble-image elf))) |