/basis/tools/disassembler/utils/utils.factor

http://github.com/abeaumont/factor · Factor · 20 lines · 15 code · 5 blank · 0 comment · 5 complexity · a516ba7c0dcb4aac68bb05652dc84957 MD5 · raw file

  1. USING: accessors kernel math math.parser prettyprint sequences
  2. splitting tools.memory ;
  3. IN: tools.disassembler.utils
  4. : 0x- ( str -- str' ) "0x" prepend ;
  5. : complete-address ( n seq -- str )
  6. [ nip owner>> unparse-short ] [ entry-point>> - ] 2bi
  7. [ >hex 0x- " + " glue ] unless-zero ;
  8. : search-xt ( addr -- str/f )
  9. dup lookup-return-address
  10. dup [ complete-address ] [ 2drop f ] if ;
  11. : resolve-xt ( str -- str' )
  12. [ 0x- ] [ hex> ] bi
  13. [ search-xt [ " (" ")" surround append ] when* ] when* ;
  14. : resolve-call ( str -- str' )
  15. "0x" split1-last [ resolve-xt "0x" glue ] when* ;