>Кароча, мы тут покурили, накодили и получилось обрезание младших 4Gb VA Space...
>
>
>Вопрос, накуя это нужно? Грубо говоря, для быстрого и эффективного отлова ошибок в большом чужом коде, связанных с хранением указателей в 32-битных переменных.
На данный момент я все же остановился на достаточно кривом и громоздком алгоритме, подбирающем удобный размер блока для непрерывной аллокации (прямо malloc'ами) нижних 5Гб, после чего они (точнее та их область, что кратна страничному форматированию) закрываются через mprotect, как PROT_NONE.
Несмотря на очевидную костыльность, подобная штука сильно облегчила мне поиск описанных error-cases. Segfault, backtrace, и виновник локализован.
Но, к примеру, мой костыль не работает под valgrind'ом, оттого я и начал поиск других вариантов.
Спасибо всем, кто выдвинул вменяемые предложения!