2010-04-12 22:10:20 -04:00
|
|
|
! Copyright (C) 2010 Erik Charlebois.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
USING: accessors combinators elf formatting io.mmap kernel sequences ;
|
|
|
|
IN: elf.nm
|
|
|
|
|
|
|
|
: print-symbol ( sections symbol -- )
|
2010-04-13 20:58:45 -04:00
|
|
|
[ sym>> st_value>> "%016x " printf ]
|
2010-04-12 22:10:20 -04:00
|
|
|
[
|
|
|
|
sym>> st_shndx>>
|
|
|
|
{
|
|
|
|
{ SHN_UNDEF [ drop "undefined" ] }
|
|
|
|
{ SHN_ABS [ drop "absolute" ] }
|
|
|
|
{ SHN_COMMON [ drop "common" ] }
|
|
|
|
[ swap nth name>> ]
|
|
|
|
} case "%-16s " printf
|
|
|
|
]
|
|
|
|
[ name>> "%s\n" printf ] tri ;
|
2015-06-29 19:43:15 -04:00
|
|
|
|
2010-04-13 20:58:45 -04:00
|
|
|
: elf-nm ( path -- )
|
2010-04-12 22:10:20 -04:00
|
|
|
[
|
2010-04-13 00:23:26 -04:00
|
|
|
sections dup ".symtab" find-section
|
2015-05-12 21:50:34 -04:00
|
|
|
symbols [ name>> empty? ] reject
|
2010-04-12 22:10:20 -04:00
|
|
|
[ print-symbol ] with each
|
2010-04-13 00:23:26 -04:00
|
|
|
] with-mapped-elf ;
|