Figure 2: Using elfdump to look at symbol tables.

%elfdump -s libgreet.so 

Symbol Table Section:  .symtab 
index    value       size     type bind oth ver shndx       name 
 ... 
[1]  0x00000000 0x00000000  FILE LOCL  D    0 ABS         libgreet.so 
 ... 
[37]  0x00000268 0x00000004  OBJT GLOB  D    0 .rodata     _lib_version 
[38]  0x000102f3 0x00000000  OBJT GLOB  D    0 .data1      _edata 
[39]  0x00000228 0x00000028  FUNC GLOB  D    0 .text       greet 
[40]  0x0001026c 0x00000000  OBJT GLOB  D    0 .dynamic    _DYNAMIC 

%elfdump -s mixedcode.o 

Symbol Table Section:  .symtab 
index    value       size     type bind oth ver shndx       name 
[0]  0x00000000 0x00000000  NOTY LOCL  D    0 UNDEF 
[1]  0x00000000 0x00000000  FILE LOCL  D    0 ABS         mixedcode.cpp 
[2]  0x00000000 0x00000000  SECT LOCL  D    0 .rodata 
[3]  0x00000000 0x00000000  FUNC GLOB  D    0 UNDEF 
    __1cDstd2l6Frn0ANbasic_ostream4Ccn0ALchar_traits4Cc____pkc_2_ 
[4]  0x00000000 0x00000000  FUNC GLOB  D    0 UNDEF        __1cFgreet6F_pc_ 
[5]  0x00000000 0x00000000  NOTY GLOB  D    0 UNDEF       __1cDstdEcout_ 
[6]  0x00000010 0x00000050  FUNC GLOB  D    0 .text       main 
[7]  0x00000000 0x00000000  NOTY GLOB  D    0 ABS          __fsr_init_value 

%dem  __1cFgreet6F_pc_
__1cFgreet6F_pc_ == char*greet()