Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[IA32] Не обязательно каждому фрейму иметь свой сегмент 30.03.04 04:05 Число просмотров: 1483
Автор: amirul <Serge> Статус: The Elderman
|
[moved from beginners] > Срыва бы не было, если бы каждый буфер (массив) > аллоцировался в отдельном сегменте с контролем "верха" и > "низа", как в 386+ и их в принципе не помещали бы в стеке. > Причем, ИМХО, написать компилер, который бы не грешил этим > - невозможно, разве что, вообще отказаться от передачи > переменных в стеке. Достаточно просто менять в Limit для каждого фрейма (примерно как постоянно перезагружаемый ebp). Только вот это привелегированная инструкция. Но поддержку со стороны компилятора наваять можно. Обращение за границу этого сегмента (даже к адресу возврата) вызывает GP fault, а там уже можно смотреть вызвано ли это командой ret/ret n и прозводится ли чтение.
В принципе реализовать компилятор и сделать stub в ядро довольно несложно. Хотя в этом случае нельзя будет передавать указатели на локальные переменные вниз по функциям - все за пределами текущего фрейма будет недоступно
|
|
|