为什么使用 /lib/ld-linux.so.2 启动时程序会失败?

为什么使用 /lib/ld-linux.so.2 启动时程序会失败?
$ /bin/bash -c 'echo qqq'
qqq
$ /lib/ld-linux.so.2 /bin/bash -c 'echo qqq'
/bin/bash: xmalloc: ../bash/variables.c:2176: cannot allocate 3 bytes (8192 bytes allocated)

为什么会发生这种情况(zsh4,python 在此用例中运行良好)?这可能是由“prelink”引起的吗?

答案1

您可能尝试在 amd64 架构上使用 32 位库调用 64 位二进制文​​件;就我而言:

ls -l /lib/ld-linux.so.2
/lib/ld-linux.so.2 -> /lib32/ld-linux.so.2

答案2

正如暗示的那样巴蒂杜, 这有可能一个错误

解决方法之一是禁用内核分配随机化:

echo 0 > /proc/sys/kernel/randomize_va_space

相关内容