1. 툴 사용
objdump, readelf, ldd

더 디버깅을 원한다면,
LD_DEBUG=files /bin/ls

     14468:    
     14468:     calling fini: /lib/tls/librt.so.1 [0]
     14468:    
     14468:    
     14468:     calling fini: /lib/libacl.so.1 [0]
     14468:    
     14468:    
     14468:     calling fini: /lib/libselinux.so.1 [0]
     14468:    
     14468:    
     14468:     calling fini: /lib/tls/libpthread.so.0 [0]
     14468:    
     14468:    
     14468:     calling fini: /lib/libattr.so.1 [0]
     14468:    
     14468:    
     14468:     calling fini: /usr/lib/gconv/EUC-KR.so [0]
     14468:    
     14468:    
     14468:     calling fini: /usr/lib/gconv/libKSC.so [0]
     14468:    
     14468:    
     14468:     calling fini: /lib/tls/libc.so.6 [0]
     14468:    





2. lstrace 쓰기

ltrace echo hello
_start(0xbffff880, 0xbffff885, 0, 0xbffff88b, 0xbffff8a2 <unfinished ...>
__libc_start_main(0x8048e1a, 2, 0xbffff704, 0x804a5a8, 0x804a5fc <unfinished ...>
setlocale(6, "")                                                               = "ko_KR.eucKR"
bindtextdomain("coreutils", "/usr/share/locale")                               = "/usr/share/locale"
textdomain("coreutils")                                                        = "coreutils"
__cxa_atexit(0x804925d, 0, 0, 0x804c27c, 0xbffff678)                           = 0
getenv("POSIXLY_CORRECT")                                                      = NULL
getopt_long(2, 0xbffff704, "+", 0x804c120, NULL)                               = -1
fputs_unlocked(0xbffff885, 0x8745c0, 0x804aa40, 0x804aa32, 0x804aa2c)          = 1
__overflow(0x8745c0, 10, 0x804aa40, 0x804aa32, 0x804aa2chello
)                      = 10
exit(0 <unfinished ...>
__fpending(0x8745c0, 0x8745c0, 0x8745c0, 0xbffff600, 0x7a9b10)                 = 0
+++ exited (status 0) +++

Posted by '김용환'
,