Я пишу эмулятор для 64-битного Linux. Я использую некоторые конструкции stdlib c ++, такие как std :: string , std :: unoromeded_map , std :: vector , std :: fileystem :: path . Мне нужно 32-разрядное адресное пространство, которое не трогало распределением, которые мой эмулятор может сделать во время выполнения, используя GLIBC или LIBC ++. Кроме того, мне нужно убедиться, что сам эмулятор и любые библиотеки, которые он использует, не загружены там. Эти адреса должны быть зарезервированы для самого эмулированного приложения. < /P>
Как я могу это обеспечить? Я хотел бы избежать переопределения Malloc и его братьев и сестер. Будет ли такого такого такого такого опции, как image_base ? Есть ли какой-нибудь способ, где распределитель GLIBC решает распределить память в 32-разрядном адресном пространстве, даже если BRK не начинается там?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ress-space