linux动态调试so,Linux的环境变量LD_DEBUG调试so的加载

本文介绍了如何利用Linux环境变量LD_DEBUG进行动态链接库的调试,详细展示了不同选项如files、bindings、libs和versions提供的加载和符号绑定信息。通过示例展示了设置LD_DEBUG后,运行程序时查找和加载库的详细过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个稍微有经验的Linux程序员都知道使用LD_LIBRARY_PATH来临时设置加载器搜索动态链接库so的路径顺序。但另一个不为人知的环境变量是LD_DEBUG。这个变量可以提供非常详细的加载动态链接库的信息。

可以把LD_DEBUG设成以下值:

export LD_DEBUG=files     # 显示库的依赖性和加载的顺序

export LD_DEBUG=bindings  # 符号绑定

export LD_DEBUG=libs   # 显示加载器查找库时使用的路径的顺序

export LD_DEBUG=versions  # 版本依赖性

export LD_DEBUG=help  # LD_DEBUG的帮助信息

试一下把LD_DEBUG设成以上值之一,再随便运行一个程序试试。

一个试验:

root@vicarious:/home/kamus/projs/horoscope/bins# export LD_DEBUG=libs

root@vicarious:/home/kamus/projs/horoscope/bins# vim my.conf

24360: find library=libm.so.6 [0]; searching

24360: search cache=/etc/ld.so.cache

24360: trying file=/lib/x86_64-linux-gnu/libm.so.6

24360:

24360: find library=libtinfo.so.5 [0]; searching

24360: search cache=/etc/ld.so.cache

24360: trying file=/lib/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值