【发布时间】:2022-01-06 11:09:15
【问题描述】:
我想在 qemu 中挂钩 mmap 系统调用,我使用 libvirt 来传递环境参数,如下所示:
<qemu:commandline>
<qemu:env name='LD_PRELOAD' value='/glibcHookMMAP.so'/>
</qemu:commandline>
但是失败了!我几乎不知道这是怎么回事! libvirt 的登录是这样的:
ERROR: ld.so: object '/glibcHookMMAP.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
首先,我认为这是权威的问题。但是文件 glibcHookMMAP.so 已经使用命令chmod 777 完成。
环境:
Ubuntu 18.04.2 Linux 5.4.0-92
libvirt 4.0.0
qemu 2.11.1
【问题讨论】:
-
为什么路径中有 /?
-
/ 是一个奇怪的地方放图书馆。
-
'/'是根路径(可能是父目录权限的问题...)。通过使用 LD_PRELOAD=/glibcHookMMAP.so qemu-system-x86_64 ...(args),它可以工作了!我认为不是目标。
标签: linux virtualization qemu libvirt