如何验证 LD_PRELOAD 正在运行?

问题描述

我知道 LD_PRELOAD 将我的 so 库设置在任何其他 so 库之前。

LD_PRELOAD=my_lib.so ./my_exec

如何观看?是否有类似 /proc/pid/... 的路径显示为此进程加载的库的顺序?

解决方法

查看/proc/$pid/maps,如果已加载,您应该会在那里看到该库。至于检查加载顺序,“before”部分是根据定义,引用手册页:

LD_PRELOAD

要在所有其他共享对象之前加载的其他用户指定的 ELF 共享对象列表。