zoukankan      html  css  js  c++  java
  • c高级编程4 LD_DEBUG

    [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
  • 相关阅读:
    一个人是否靠谱,闭环很重要(深度)
    远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
    如何量化考核技术人的 KPI?
    ECharts
    Spring IO Platform介绍
    百亿级日访问量的应用如何做缓存架构设计?
    大型分布式系统中的缓存架构
    Delphi实现屏幕截图、窗口截图、指定区域截图
    Delphi窗体重绘API
    GdiPlus 一个给 Delphi 提供的新的 GDI+ 接口很好用!
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5520243.html
Copyright © 2011-2022 走看看