Skip navigation

Tag Archives: 系统编程

可以通过下面的实例来了解LD_PRELOAD环境变量的使用方法

[jianingy(0)@nby ~]$ ldd /opt/bamboo/bin/bamboo
        linux-gate.so.1 =>  (0x0082a000)
        libdl.so.2 => /lib/libdl.so.2 (0x009c7000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x051fc000)
        libm.so.6 => /lib/libm.so.6 (0x0099c000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x05110000)
        libc.so.6 => /lib/libc.so.6 (0x00110000)
        /lib/ld-linux.so.2 (0x00801000)
[jianingy(0)@nby ~]$ LD_PRELOAD="libcrfpp.so" ldd /opt/bamboo/bin/bamboo
        linux-gate.so.1 =>  (0x00205000)
        libcrfpp.so => /usr/lib/libcrfpp.so (0x005f8000)
        libdl.so.2 => /lib/libdl.so.2 (0x009c7000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x051fc000)
        libm.so.6 => /lib/libm.so.6 (0x0099c000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x05110000)
        libc.so.6 => /lib/libc.so.6 (0x00826000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x009ce000)
        /lib/ld-linux.so.2 (0x00801000)

LD_DEBUG is an environment variable for debugging library problem. The following example shows how to use it.
LD_DEBUG是一个用来调试共享库的环境变量,将其设置为help并运行任意程序即可看到他的使用说明

[jianingy(0)@nby ~/devel/trie]$ LD_DEBUG=help src/trietool
Valid options for the LD_DEBUG environment variable are:

  libs        display library search paths
  reloc       display relocation processing
  files       display progress for input file
  symbols     display symbol table processing
  bindings    display information about symbol binding
  versions    display version dependencies
  all         all previous options combined
  statistics  display relocation statistics
  unused      determined unused DSOs
  help        display this help message and exit

To direct the debugging output into a file instead of standard output
a filename can be specified using the LD_DEBUG_OUTPUT environment variable.