mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 01:00:20 +02:00
,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.
This commit is contained in:
parent
610295ec9d
commit
93009a7aca
3 changed files with 12 additions and 11 deletions
|
@ -27,20 +27,12 @@
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(define-module (scripts disassemble)
|
(define-module (scripts disassemble)
|
||||||
#:use-module (system vm objcode)
|
|
||||||
#:use-module (system vm program)
|
|
||||||
#:use-module (system vm disassembler)
|
#:use-module (system vm disassembler)
|
||||||
#:use-module ((language assembly disassemble)
|
|
||||||
#:renamer (symbol-prefix-proc 'asm:))
|
|
||||||
#:export (disassemble))
|
#:export (disassemble))
|
||||||
|
|
||||||
(define %summary "Disassemble a compiled .go file.")
|
(define %summary "Disassemble a compiled .go file.")
|
||||||
|
|
||||||
(define (disassemble . files)
|
(define (disassemble . files)
|
||||||
(for-each (lambda (file)
|
(for-each disassemble-file files))
|
||||||
(let* ((thunk (load-thunk-from-file file))
|
|
||||||
(elf (find-mapped-elf-image (rtl-program-code thunk))))
|
|
||||||
(disassemble-image elf)))
|
|
||||||
files))
|
|
||||||
|
|
||||||
(define main disassemble)
|
(define main disassemble)
|
||||||
|
|
|
@ -487,6 +487,9 @@ Run the optimizer on a piece of code and print the result."
|
||||||
(define (disassemble-program x)
|
(define (disassemble-program x)
|
||||||
((@ (system vm disassembler) 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))
|
(define-meta-command (disassemble repl (form))
|
||||||
"disassemble EXP
|
"disassemble EXP
|
||||||
Disassemble a compiled procedure."
|
Disassemble a compiled procedure."
|
||||||
|
@ -503,7 +506,7 @@ Disassemble a compiled procedure."
|
||||||
(define-meta-command (disassemble-file repl file)
|
(define-meta-command (disassemble-file repl file)
|
||||||
"disassemble-file FILE
|
"disassemble-file FILE
|
||||||
Disassemble a file."
|
Disassemble a file."
|
||||||
(guile:disassemble (load-thunk-from-file (->string file))))
|
(disassemble-file (->string file)))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-4)
|
#:use-module (srfi srfi-4)
|
||||||
#:export (disassemble-program
|
#:export (disassemble-program
|
||||||
disassemble-image))
|
disassemble-image
|
||||||
|
disassemble-file))
|
||||||
|
|
||||||
(define-syntax-rule (u32-ref buf n)
|
(define-syntax-rule (u32-ref buf n)
|
||||||
(bytevector-u32-native-ref buf (* n 4)))
|
(bytevector-u32-native-ref buf (* n 4)))
|
||||||
|
@ -357,3 +358,8 @@ address of that offset."
|
||||||
ctx)
|
ctx)
|
||||||
(display "\n\n" port)))))
|
(display "\n\n" port)))))
|
||||||
(values))
|
(values))
|
||||||
|
|
||||||
|
(define (disassemble-file file)
|
||||||
|
(let* ((thunk (load-thunk-from-file file))
|
||||||
|
(elf (find-mapped-elf-image (rtl-program-code thunk))))
|
||||||
|
(disassemble-image elf)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue