如何只对目标程序应用LD_PRELOAD?
How to apply LD_PRELOAD only to target program?
我正在尝试调试堆损坏(使用 QIRA 调试器);仅适用于 Doug Lea 的 Malloc。
我已尝试执行以下操作:
LD_PRELOAD=./malloc.so qira ./program $(cat shfree5)
我收到以下错误:
ERROR: ld.so: object './malloc.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
这是因为加载程序尝试将 x86 malloc.so
链接到 x64 qira
。
我只想将 LD_PRELOAD
应用到 ./program
,而不是 qira
;我已尝试使用 env
命令,但无法正常工作。
提前致谢!
看来你可以在环境中设置QEMU_SET_ENV=LD_PRELOAD=./malloc.so
来影响进程。
我会注意到,您可以通过设置 QEMU_UNSET_ENV=FOO,BAR
.
类似地为目标取消设置环境变量
我正在尝试调试堆损坏(使用 QIRA 调试器);仅适用于 Doug Lea 的 Malloc。
我已尝试执行以下操作:
LD_PRELOAD=./malloc.so qira ./program $(cat shfree5)
我收到以下错误:
ERROR: ld.so: object './malloc.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
这是因为加载程序尝试将 x86 malloc.so
链接到 x64 qira
。
我只想将 LD_PRELOAD
应用到 ./program
,而不是 qira
;我已尝试使用 env
命令,但无法正常工作。
提前致谢!
看来你可以在环境中设置QEMU_SET_ENV=LD_PRELOAD=./malloc.so
来影响进程。
我会注意到,您可以通过设置 QEMU_UNSET_ENV=FOO,BAR
.