View Single Post
Old 10-20-2013, 08:12 PM   #82
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Týr
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
3.3.2. LD_DEBUG

Another useful environment variable in the GNU C loader is LD_DEBUG. This triggers the dl* functions so that they give quite verbose information on what they are doing. For example:
export LD_DEBUG=files
command_to_run
displays the processing of files and libraries when handling libraries, telling you what dependencies are detected and which SOs are loaded in what order. Setting LD_DEBUG to ``bindings'' displays information about symbol binding, setting it to ``libs'' displays the library search paths, and setting ti to ``versions'' displays the version depdendencies.

Setting LD_DEBUG to ``help'' and then trying to run a program will list the possible options. Again, LD_DEBUG isn't intended for normal use, but it can be handy when debugging and testing.


EXAMPLE:
export LD_DEBUG=files,libs
eips "me"

Code:
     22056:	
     22056:	file=/usr/lib/libenvload.so [0];  needed by eips [0]
     22056:	file=/usr/lib/libenvload.so [0];  generating link map
     22056:	  dynamic: 0x40029710  base: 0x40021000   size: 0x0000883c
     22056:	    entry: 0x400214f0  phdr: 0x40021034  phnum:          5
     22056:	
     22056:	
     22056:	file=libm.so.6 [0];  needed by eips [0]
     22056:	find library=libm.so.6 [0]; searching
     22056:	 search path=/mnt/us/extensions/system/lib/armv7l/tls/v7l/neon/vfp:/mnt/us/extensions/system/lib/armv7l/tls/v7l/neon:/mnt/us/extensions/system/lib/armv7l/tls/v7l/vfp:/mnt/us/extensions/system/lib/armv7l/tls/v7l:/mnt/us/extensions/system/lib/armv7l/tls/neon/vfp:/mnt/us/extensions/system/lib/armv7l/tls/neon:/mnt/us/extensions/system/lib/armv7l/tls/vfp:/mnt/us/extensions/system/lib/armv7l/tls:/mnt/us/extensions/system/lib/armv7l/v7l/neon/vfp:/mnt/us/extensions/system/lib/armv7l/v7l/neon:/mnt/us/extensions/system/lib/armv7l/v7l/vfp:/mnt/us/extensions/system/lib/armv7l/v7l:/mnt/us/extensions/system/lib/armv7l/neon/vfp:/mnt/us/extensions/system/lib/armv7l/neon:/mnt/us/extensions/system/lib/armv7l/vfp:/mnt/us/extensions/system/lib/armv7l:/mnt/us/extensions/system/lib/armv6l/tls/v7l/neon/vfp:/mnt/us/extensions/system/lib/armv6l/tls/v7l/neon:/mnt/us/extensions/system/lib/armv6l/tls/v7l/vfp:/mnt/us/extensions/system/lib/armv6l/tls/v7l:/mnt/us/extensions/system/lib/armv6l/tls/neon/vfp:/mnt/us/extensions/system/lib/armv6l/tls/neon:/mnt/us/extensions/system/lib/armv6l/tls/vfp:/mnt/us/extensions/system/lib/armv6l/tls:/mnt/us/extensions/system/lib/armv6l/v7l/neon/vfp:/mnt/us/extensions/system/lib/armv6l/v7l/neon:/mnt/us/extensions/system/lib/armv6l/v7l/vfp:/mnt/us/extensions/system/lib/armv6l/v7l:/mnt/us/extensions/system/lib/armv6l/neon/vfp:/mnt/us/extensions/system/lib/armv6l/neon:/mnt/us/extensions/system/lib/armv6l/vfp:/mnt/us/extensions/system/lib/armv6l		(LD_LIBRARY_PATH)
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/v7l/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/v7l/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/v7l/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/tls/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/v7l/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/v7l/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/v7l/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/v7l/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/v7l/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/v7l/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/tls/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/v7l/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/v7l/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/v7l/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/neon/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/neon/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/vfp/libm.so.6
     22056:	  trying file=/mnt/us/extensions/system/lib/armv6l/libm.so.6
     22056:	 search path=/usr/lib/tls/v7l/neon/vfp:/usr/lib/tls/v7l/neon:/usr/lib/tls/v7l/vfp:/usr/lib/tls/v7l:/usr/lib/tls/neon/vfp:/usr/lib/tls/neon:/usr/lib/tls/vfp:/usr/lib/tls:/usr/lib/v7l/neon/vfp:/usr/lib/v7l/neon:/usr/lib/v7l/vfp:/usr/lib/v7l:/usr/lib/neon/vfp:/usr/lib/neon:/usr/lib/vfp:/usr/lib:/lib/tls/v7l/neon/vfp:/lib/tls/v7l/neon:/lib/tls/v7l/vfp:/lib/tls/v7l:/lib/tls/neon/vfp:/lib/tls/neon:/lib/tls/vfp:/lib/tls:/lib/v7l/neon/vfp:/lib/v7l/neon:/lib/v7l/vfp:/lib/v7l:/lib/neon/vfp:/lib/neon:/lib/vfp:/lib		(system search path)
     22056:	  trying file=/usr/lib/tls/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/usr/lib/tls/v7l/neon/libm.so.6
     22056:	  trying file=/usr/lib/tls/v7l/vfp/libm.so.6
     22056:	  trying file=/usr/lib/tls/v7l/libm.so.6
     22056:	  trying file=/usr/lib/tls/neon/vfp/libm.so.6
     22056:	  trying file=/usr/lib/tls/neon/libm.so.6
     22056:	  trying file=/usr/lib/tls/vfp/libm.so.6
     22056:	  trying file=/usr/lib/tls/libm.so.6
     22056:	  trying file=/usr/lib/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/usr/lib/v7l/neon/libm.so.6
     22056:	  trying file=/usr/lib/v7l/vfp/libm.so.6
     22056:	  trying file=/usr/lib/v7l/libm.so.6
     22056:	  trying file=/usr/lib/neon/vfp/libm.so.6
     22056:	  trying file=/usr/lib/neon/libm.so.6
     22056:	  trying file=/usr/lib/vfp/libm.so.6
     22056:	  trying file=/usr/lib/libm.so.6
     22056:	  trying file=/lib/tls/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/lib/tls/v7l/neon/libm.so.6
     22056:	  trying file=/lib/tls/v7l/vfp/libm.so.6
     22056:	  trying file=/lib/tls/v7l/libm.so.6
     22056:	  trying file=/lib/tls/neon/vfp/libm.so.6
     22056:	  trying file=/lib/tls/neon/libm.so.6
     22056:	  trying file=/lib/tls/vfp/libm.so.6
     22056:	  trying file=/lib/tls/libm.so.6
     22056:	  trying file=/lib/v7l/neon/vfp/libm.so.6
     22056:	  trying file=/lib/v7l/neon/libm.so.6
     22056:	  trying file=/lib/v7l/vfp/libm.so.6
     22056:	  trying file=/lib/v7l/libm.so.6
     22056:	  trying file=/lib/neon/vfp/libm.so.6
     22056:	  trying file=/lib/neon/libm.so.6
     22056:	  trying file=/lib/vfp/libm.so.6
     22056:	  trying file=/lib/libm.so.6
     22056:	
     22056:	file=libm.so.6 [0];  generating link map
     22056:	  dynamic: 0x40096ef8  base: 0x4002a000   size: 0x0006d0a8
     22056:	    entry: 0x4002d200  phdr: 0x4002a034  phnum:          8
     22056:	
     22056:	
     22056:	file=libc.so.6 [0];  needed by eips [0]
     22056:	find library=libc.so.6 [0]; searching
     22056:	 search path=/mnt/us/extensions/system/lib/armv7l		(LD_LIBRARY_PATH)
     22056:	  trying file=/mnt/us/extensions/system/lib/armv7l/libc.so.6
     22056:	 search path=/usr/lib:/lib		(system search path)
     22056:	  trying file=/usr/lib/libc.so.6
     22056:	  trying file=/lib/libc.so.6
     22056:	
     22056:	file=libc.so.6 [0];  generating link map
     22056:	  dynamic: 0x4018ef08  base: 0x40098000   size: 0x000fa51c
     22056:	    entry: 0x400ad6c1  phdr: 0x40098034  phnum:         10
     22056:	
     22056:	
     22056:	calling init: /lib/libc.so.6
     22056:	
     22056:	
     22056:	calling init: /lib/libm.so.6
     22056:	
     22056:	
     22056:	calling init: /usr/lib/libenvload.so
     22056:	
     22056:	
     22056:	initialize program: eips
     22056:	
     22056:	
     22056:	transferring control: eips
     22056:	
     22056:	
     22056:	calling fini: eips [0]
     22056:	
     22056:	
     22056:	calling fini: /usr/lib/libenvload.so [0]
     22056:	
     22056:	
     22056:	calling fini: /lib/libm.so.6 [0]
     22056:	
     22056:	
     22056:	calling fini: /lib/libc.so.6 [0]
     22056:	

(TO STOP:)
[root@kindle root]# unset LD_DEBUG
[root@kindle root]# eips "me"
twobob is offline   Reply With Quote