确保Linux分配不超出32位地址空间

问题描述 投票:0回答:1
std::unordered_map

std::vector
std::filesystem::path
。我需要使用GLIBC或LIBC ++在运行时可能会进行的32位地址空间,以免分配。此外,我需要确保模拟器本身及其使用的任何库都不会加载。这些地址需要保留用于模拟应用程序本身。
我怎么能确保这一点?我想避免覆盖马洛克及其兄弟姐妹。诸如
image_base
足够的接头选项是否足够? GLIBC分配器决定在32位地址空间中分配内存的任何方法即使BRK不在此处?

您可以要求操作系统为您映射该内存:

mmap(0, 1<<32, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED_NOREPLACE | MAP_ANONYMOUS, -1, 0)
c++ linux clang
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.