Вопросы с тегом «stack»

3
Как работает распределение стека в Linux?
Резервирует ли ОС фиксированный объем действительного виртуального пространства для стека или чего-то еще? Могу ли я произвести переполнение стека, просто используя большие локальные переменные? Я написал небольшую Cпрограмму, чтобы проверить мое предположение. Он работает на X86-64 CentOS 6.5. #include <string.h> #include <stdio.h> int main() { int n = 10240 * …

1
Как я могу контролировать потребление памяти на процесс / на поток (разделенный на кучу, стек, данные, код)?
Прежде чем приступить к написанию собственного кода, я хочу выяснить, существует ли программное обеспечение GNU / Linux, способное выводить что-то похожее на QNXshowmem . Для каждого потока каждого запущенного процесса хотелось бы, чтобы потребление памяти было разделено на следующие категории: Process listing (Total, Code, Data, Heap, Stack, Other) 319488 1024000 …
11 linux  memory  stack 

2
Что устанавливает fs: [0x28] (стек канарейки)?
Из этого поста показано, что FS:[0x28]это стека канарейка. Я генерирую тот же код, используя GCC для этой функции, void foo () { char a[500] = {}; printf("%s", a); } В частности, я получаю эту сборку .. 0x000006b5 64488b042528. mov rax, qword fs:[0x28] ; [0x28:8]=0x1978 ; '(' ; "x\x19" 0x000006be 488945f8 …
11 linux  security  gcc  stack 

2
Почему в современном Linux размер стека по умолчанию такой огромный - 8 МБ (даже 10 в некоторых дистрибутивах)
Например, на OSX это даже меньше, чем 512k. Есть ли рекомендуемый размер, учитывая, что приложение не использует рекурсию и не выделяет много переменных стека ? Я знаю, что вопрос слишком широкий и сильно зависит от использования, но все же хотел спросить, так как мне было интересно, есть ли какая-то скрытая …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.