Linux, как получить минимально возможный адрес стекаLinux

Anonymous
Linux, как получить минимально возможный адрес стека

Сообщение Anonymous »

Я хочу встроить Google V8 (v6.8) в программу C++. Поскольку эта программа использует много стека, я хочу настроить V8 на использование всего доступного стека. Для этого мне нужен наименьший разрешенный адрес стека, который может использовать V8.

Код: Выделить всё

uint32_t *base;
// TODO: set `base` to lowest stack address
...
v8::Isolate::CreateParams createParams;
createParams.array_buffer_allocator =
v8::ArrayBuffer::Allocator::NewDefaultAllocator();
createParams.constraints.set_stack_limit(base);

defaultIsolate = Isolate::New(createParams);
...
Теперь мне нужно определить значение base под Linux. Для этого я попробовал прочитать /proc/self/maps. Однако размер сегмента, считываемого для стека, всегда составляет всего 132 КБ:

Код: Выделить всё

7fff03e18000-7fff03e39000 rw-p 00000000 00:00 0                          [stack]
Похоже, это не зависит от того, какой лимит стека установлен. Я также попробовал прочитать лимит с помощью getrlimit() и уменьшить максимальный адрес на лимит. Но это приводит к сбою.
Может ли кто-нибудь сказать мне, как еще я могу узнать самый низкий адрес стека в Linux?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ck-address

Вернуться в «Linux»