码迷,mamicode.com
首页 > 其他好文 > 详细

c高级编程4 LD_DEBUG

时间:2016-05-23 16:39:19      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:

[root@monitor ~]# LD_DEBUG=help ls
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.
[root@monitor ~]# LD_DEBUG=bindings /root/test 
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_res [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_file_close [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `rpc_createerr [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__key_gendes_LOCAL [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__ctype32_tolower [GLIBC_2.2]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `loc1 [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `svc_pollfd [GLIBC_2.2]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_funlockfile [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__malloc_initialize_hook [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `argp_program_version [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__tzname [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__after_morecore_hook [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__progname [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `obstack_exit_failure [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__check_rhosts_file [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `program_invocation_short_name [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_stdout_ [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `optopt [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `malloc [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_environ [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_stderr_ [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__key_encryptsession_pk_LOCAL [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__ctype_tolower [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__malloc_hook [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /root/test [0]: normal symbol `_IO_stdin_used     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__progname_full [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `obstack_alloc_failed_handler [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__fpu_control [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `mallwatch [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `loc2 [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__realloc_hook [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/ld-linux.so.2 [0]: normal symbol `__libc_stack_end [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `program_invocation_name [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `argp_program_version_hook [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__curbrk [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `stdout [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `svc_max_pollfd [GLIBC_2.2]
     21569:     binding file /lib/libc.so.6 [0] to /lib/ld-linux.so.2 [0]: normal symbol `_rtld_global_ro [GLIBC_PRIVATE]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_nl_domain_bindings [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `stderr [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__ctype32_b [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/ld-linux.so.2 [0]: normal symbol `__libc_enable_secure [GLIBC_PRIVATE]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_res_hconf [GLIBC_2.2]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `argp_program_bug_address [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `h_errlist [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `optind [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/ld-linux.so.2 [0]: normal symbol `_dl_argv [GLIBC_PRIVATE]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `svc_fdset [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_stdin_ [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `re_syntax_options [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__rcmd_errstr [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__daylight [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `error_print_progname [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__ctype32_toupper [GLIBC_2.2]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__ctype_b [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__ctype_toupper [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__morecore [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `getdate_err [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_nl_msg_cat_cntr [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `stdin [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__environ [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `svcauthdes_stats [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__memalign_hook [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__free_hook [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `error_message_count [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `free [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/ld-linux.so.2 [0]: normal symbol `_rtld_global [GLIBC_PRIVATE]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__timezone [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `__key_decryptsession_pk_LOCAL [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `error_one_per_line [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `opterr [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `optarg [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `argp_err_exit_status [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_2_1_stdin_ [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_2_1_stdout_ [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_IO_2_1_stderr_ [GLIBC_2.1]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `calloc [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `realloc [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `malloc [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/ld-linux.so.2 [0]: normal symbol `___tls_get_addr [GLIBC_2.3]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `memalign [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `free [GLIBC_2.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `_Unwind_Find_FDE [GCC_3.0]
     21569:     binding file /lib/libc.so.6 [0] to /lib/libc.so.6 [0]: normal symbol `memmem [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/ld-linux.so.2 [0]: normal symbol `_r_debug [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/libc.so.6 [0]: normal symbol `free [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/libc.so.6 [0]: normal symbol `__libc_memalign [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/libc.so.6 [0]: normal symbol `malloc [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/libc.so.6 [0]: normal symbol `calloc [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/libc.so.6 [0]: normal symbol `realloc [GLIBC_2.0]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/ld-linux.so.2 [0]: normal symbol `___tls_get_addr [GLIBC_2.3]
     21569:     binding file /lib/ld-linux.so.2 [0] to /lib/libc.so.6 [0]: normal symbol `free [GLIBC_2.0]
     21569:
     21569:     calling init: /lib/libc.so.6
     21569:
     21569:     binding file /root/test [0] to /lib/libc.so.6 [0]: normal symbol `__libc_start_main [GLIBC_2.0]
     21569:
     21569:     initialize program: /root/test
     21569:
     21569:
     21569:     transferring control: /root/test
     21569:
     21569:     binding file /root/test [0] to /lib/libc.so.6 [0]: normal symbol `sbrk [GLIBC_2.0]
     21569:     binding file /root/test [0] to /lib/libc.so.6 [0]: normal symbol `brk [GLIBC_2.0]
     21569:     binding file /root/test [0] to /lib/libc.so.6 [0]: normal symbol `printf [GLIBC_2.0]

0x9c22000 0x9c22004 (nil) 0x9c22004 0x9c22004 Segmentation fault
[root@monitor ~]# LD_DEBUG=libs /root/test                         //显示库如何加载的     
     21570:     find library=libc.so.6 [0]; searching
     21570:      search cache=/etc/ld.so.cache
     21570:       trying file=/lib/libc.so.6
     21570:
     21570:
     21570:     calling init: /lib/libc.so.6
     21570:
     21570:
     21570:     initialize program: /root/test
     21570:
     21570:
     21570:     transferring control: /root/test
     21570:
0x9a88000
0x9a88004
(nil)
0x9a88004
0x9a88004
Segmentation fault

 

c高级编程4 LD_DEBUG

标签:

原文地址:http://www.cnblogs.com/zengkefu/p/5520243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!