/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비트 lib로 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

관련 정보