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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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