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)))