I'm not sure my question makes sense in a linux way. I'm searching for something that would work similar to dumpbin.exe from Visual Studio toolkit.
Basically I have an existing project with a bunch of libraries and a single executable. I'd like to figure out which libraries are really needed and which function in each library.
I'm using shared objects only since this project targets an ARM device.
maybe you can use ldd and nm. ldd will tell you which shared objects (aka dll in win) are needed. and nm will tell dump the symbols.
example run:
$ ldd a
linux-vdso.so.1 => (0x00007fffd1dff000)
libc.so.6 => /lib/libc.so.6 (0x00007fcbc97d9000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcbc9b21000)
$ nm a
0000000000600e40 d _DYNAMIC
0000000000600fe8 d _GLOBAL_OFFSET_TABLE_
00000000004005b8 R _IO_stdin_used
w _Jv_RegisterClasses
0000000000601020 A __bss_start
0000000000601008 D __data_start
0000000000601010 D __dso_handle
w __gmon_start__
0000000000600e14 d __init_array_end
0000000000600e14 d __init_array_start
00000000004004d0 T __libc_csu_fini
00000000004004e0 T __libc_csu_init
U __libc_start_main@@GLIBC_2.2.5
0000000000601020 A _edata
0000000000601028 A _end
00000000004005a8 T _fini
00000000004003c0 T _init
0000000000400400 T _start
0000000000601008 W data_start
00000000004004b8 T main
EDIT: forgot about objdump. i.e:
$ objdump -f a
a: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000400400
using -x will give you all headers (quite verbose to post, but try it out :))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With