diff options
Diffstat (limited to 'module/scripts/disassemble.scm')
-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) |