Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Valeriy E. Ushakov                   2:5020/400     22 Apr 2002  01:30:27
 To : Gleb Smirnoff
 Subject : Re: limit
 -------------------------------------------------------------------------------- 
 
 Gleb Smirnoff <glebius@cell.sick.ru> wrote:
 
 > Valeriy E. Ushakov <uwe@ptc.spbu.ru> wrote:
 >>> То есть результат malloc() не проверяется?
 > 
 > VEU> А как проверить, что ты в stack limit уперся?  Программа честно
 > VEU> двигает sp, и думает, что у нее есть N байт на фрейм, хотя их у нее
 > VEU> всего лишь до конца последней страницы, а больше не дадут.
 > 
 > RETURN VALUES
 >      The malloc() and calloc() functions return a pointer to the allocated
 >      space if successful; otherwise, a null pointer is returned and errno is
 >      set to ENOMEM.
 
 Программа имеет, скажем, 512К лимит на размер стека.  Программа
 выжрала, ну скажем, 511K.  Она вызывает функцию, которой под локальные
 переменные надо, ну пусть, 2К.  Пролог функции создает новый call
 frame, передвинув %sp/%fp, код функции обращается к переменнным по
 смещениям от регистра.  Обращается к одной переменной, которая ниже
 512К - все ок. Обращается к другой переменной, которая вылезает за эти
 512К на следующую страницу... оппаньки, стек уперся в лимит, новой
 страницы ядро под стек не дает.  Программа умирает.
 
 Реальный пример - сборка clisp на NetBSD/sparc дохнет в bootstrap'е
 именно по этой причине.
 Кстати, вот где был неправ - так в непоквоченной тобой гипотезе про
 malloc - там sbrk(), упершись в лимит, обломится с ENOMEM.  Hо malloc,
 явно просит себе новый кусок арены и может проверить код возврата.  А
 вот стек функции дается программе ядром автомагически, явочным, так
 сказать порядком.
 
 SY, Uwe
 -- 
 uwe@ptc.spbu.ru                         |       Zu Grunde kommen
 http://www.ptc.spbu.ru/~uwe/            |       Ist zu Grunde gehen
 --- ifmail v.2.15dev5
  * Origin: St.Petersburg University NOC (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 limit   Ruslan Sulemanov   08 Apr 2002 00:12:16 
 Re: limit   Eugene Grosbein   08 Apr 2002 13:26:11 
 Re: limit   Gleb Smirnoff   08 Apr 2002 09:42:27 
 limit   Ruslan Sulemanov   14 Apr 2002 01:59:59 
 Re: limit   Dmitriy Kyrhlarov   15 Apr 2002 11:31:38 
 Re: limit   Gleb Smirnoff   16 Apr 2002 01:01:17 
 limit   Ruslan Sulemanov   17 Apr 2002 00:15:05 
 Re: limit   Andrew Kolchoogin   20 Apr 2002 17:56:10 
 Re: limit   Eugene Grosbein   21 Apr 2002 00:19:08 
 Re^2: limit   Andrew Kolchoogin   20 Apr 2002 21:48:28 
 Re: limit   Eugene Grosbein   21 Apr 2002 19:19:56 
 Re^2: limit   Andrew Kolchoogin   20 Apr 2002 21:50:00 
 Re^2: limit   Kardanev Alexandre   23 Apr 2002 10:22:24 
 Re: limit   Valentin Nechayev   20 Apr 2002 22:30:44 
 Re^2: limit   Andrew Kolchoogin   21 Apr 2002 02:52:36 
 Re: limit   Valeriy E. Ushakov   21 Apr 2002 14:05:37 
 Re: limit   Gleb Smirnoff   21 Apr 2002 23:35:51 
 Re: limit   Valeriy E. Ushakov   22 Apr 2002 01:30:27 
 Re: limit   Gleb Smirnoff   20 Apr 2002 22:46:36 
 Re^2: limit   Andrew Kolchoogin   21 Apr 2002 02:55:14 
 Re^2: limit   Max Khon   23 Apr 2002 21:56:36 
 limit   Alex Semenyaka   23 Apr 2002 03:30:52 
 limit   Alex Semenyaka   08 Apr 2002 15:48:02 
 limit   Ruslan Sulemanov   14 Apr 2002 02:21:19 
 limit   Pavel Shishkin   08 Apr 2002 20:34:20 
 limit   Alexander Anistratenko   09 Apr 2002 01:24:49 
 Re: limit   Dmitry Mikhailov   09 Apr 2002 11:59:37 
 limit   Alexander Anistratenko   09 Apr 2002 17:47:13 
 Re: limit   Eugene Grosbein   09 Apr 2002 20:15:18 
 limit   Alexander Anistratenko   09 Apr 2002 21:13:20 
 Re: limit   Eugene Grosbein   10 Apr 2002 10:46:38 
 limit   Alexander Anistratenko   10 Apr 2002 13:32:29 
 Re: limit   Eugene Grosbein   10 Apr 2002 15:07:04 
 limit   Alexander Anistratenko   10 Apr 2002 15:33:17 
 Re: limit   Eugene Grosbein   10 Apr 2002 17:17:10 
 limit   Alexander Anistratenko   10 Apr 2002 17:53:44 
 limit   Kardanev Alexandre   10 Apr 2002 15:52:47 
 Re: limit   Eugene Grosbein   10 Apr 2002 20:05:32 
 limit   Alexander Anistratenko   10 Apr 2002 21:21:12 
 Re: limit   Andrew Dolgov   10 Apr 2002 21:25:06 
 limit   Serge V. Svetoff   10 Apr 2002 22:27:08 
 Re: limit   Valentin Nechayev   11 Apr 2002 09:32:01 
 limit   Alexander Anistratenko   11 Apr 2002 14:58:23 
 Re: limit   Eugene Grosbein   11 Apr 2002 16:34:33 
 limit   Alexander Anistratenko   11 Apr 2002 16:02:22 
 Re: limit   Eugene Grosbein   12 Apr 2002 10:19:28 
 limit   Alexander Anistratenko   12 Apr 2002 13:12:16 
 Re: limit   Eugene Grosbein   12 Apr 2002 15:19:03 
 Re: limit   Andrew Dolgov   11 Apr 2002 20:20:10 
 limit   Serge V. Svetoff   11 Apr 2002 22:08:34 
 limit   Max Khon   11 Apr 2002 02:53:16 
 Re: limit   Eugene Grosbein   11 Apr 2002 09:35:14 
 limit   Max Khon   11 Apr 2002 02:47:04 
 Re: limit   Artem \'Zazoobr\' Ignatjev   15 Apr 2002 11:58:16 
 Re: limit   Dmitriy Kyrhlarov   10 Apr 2002 13:51:30 
 limit   Alexander Anistratenko   10 Apr 2002 17:56:13 
 Re: limit   Dmitriy Kyrhlarov   10 Apr 2002 15:36:21 
 Re: limit   Gleb Smirnoff   10 Apr 2002 18:41:49 
 limit   Alexander Anistratenko   10 Apr 2002 23:38:37 
 Re: limit   Gleb Smirnoff   11 Apr 2002 01:05:57 
 limit   Max Khon   11 Apr 2002 02:42:54 
 limit   Max Khon   09 Apr 2002 23:34:40 
 limit   Ruslan Sulemanov   14 Apr 2002 02:09:23 
Архивное /ru.unix.bsd/65783463b2f9.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional