]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/tools/disassembler/disassembler.factor
tools.disassembler: make udis86 pprint words so we can click on them.
[factor.git] / basis / tools / disassembler / disassembler.factor
index 0f864ff8740194a70e3fa27b4851c1db6500944e..c7ac14d8c36da6078e6af31870c4d138d71b7a79 100644 (file)
@@ -11,27 +11,24 @@ GENERIC: disassemble ( obj -- )
 
 SYMBOL: disassembler-backend
 
-HOOK: disassemble* disassembler-backend ( from to -- lines )
+HOOK: disassemble* disassembler-backend ( from to -- )
 
-TR: tabs>spaces "\t" "\s" ;
+GENERIC: convert-address ( object -- n )
 
-GENERIC: (>address) ( object -- n )
+M: integer convert-address ;
 
-M: integer (>address) ;
-M: alien (>address) alien-address ;
+M: alien convert-address alien-address ;
 
 PRIVATE>
 
 M: byte-array disassemble
     [
         [ malloc-byte-array &free alien-address dup ]
-        [ length + ] bi
-        2array disassemble
+        [ length + ] bi 2array disassemble
     ] with-destructors ;
 
 M: pair disassemble
-    first2-unsafe [ (>address) ] bi@ disassemble*
-    [ tabs>spaces print ] each ;
+    first2-unsafe [ convert-address ] bi@ disassemble* ;
 
 M: word disassemble word-code 2array disassemble ;