Well....do some experiment yourself....and let us know the results.... First( mine is FC5): /mnt/hd0>gdb /lib/libcap.so (gdb) info functions All defined functions: Non-debugging symbols: 0x002a78d8 _init 0x002a7900 cap_init@plt 0x002a7960 __cxa_finalize@plt 0x002a7990 _libcap_strdup@plt 0x002a79a0 cap_free@plt 0x002a79d0 __gmon_start__@plt 0x002a7abc cap_init 0x002a7b46 _libcap_strdup 0x002a7be7 cap_dup 0x002a7c6a cap_free 0x002a7d68 cap_get_proc 0x002a7db6 cap_set_proc 0x002a7e21 capgetp 0x002a7e9f capsetp 0x002a7f20 cap_size 0x002a7f2a cap_copy_ext 0x002a807e cap_copy_int 0x002a8230 cap_get_flag 0x002a82d1 cap_set_flag 0x002a8419 cap_clear 0x002a8675 cap_from_text 0x002a8ba6 cap_to_text 0x002a8fb4 _fini (gdb) objdump -T /lib/libcap.so |grep "F "|grep -v UND Notice the 2nd grep is F followed by a space. At first I thought it was "F..text"....but then I was wrong, because comparing the above (gdb) output and that of objdump -- _init is missing, because _init is in the .init section. And all dyn library need to implement a _init function. So not necessary functions are always in .text section. and the 2nd grep is UND is needed - it just means exclude all the functions symbol that point to other libraries (noted by the @plt signature). And most importantly, the output of the above command line matches in number with that of gdb --> after all the @plt from gdb output is manually removed. And the following is from HP-UX: To see the functions exported from a shared library: $ elfdump -s -n .dynsym libsubs.so | grep 'FUNC GLOB' | grep -v UNDEF To see the global data items exported from a shared library: $ elfdump -s -n .dynsym libsubs.so | grep 'OBJT GLOB' | grep -v UNDEF -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ