LINUX.ORG.RU

мок для malloc написать?

namezys ★★★★
()

Когда-то писал утилиту, которая ограничивала процессы по времени и памяти. Использовал системный вызов setrlimit. С его помощью, видимо, можно добиться того, что вам нужно.

rexadecimal
()

Велосипед?

static const int fail_at= atoi(getenv(«MALLOC_FAILS_AT»));
static int n_alloced;

#define malloc(n) ((++n_alloced == fail_at)? NULL: malloc(n))


gods-little-toy ★★★
()
Ответ на: комментарий от rexadecimal

> Использовал системный вызов setrlimit. С его помощью, видимо, можно добиться того, что вам нужно.

может еще и память вынуть?

namezys ★★★★
()

>Нужно протестировать код на правильную реакцию, в случае нехватки памяти, как это сделать?

Надо недодать памяти. man ulimit. Быстро и просто.

legolegs ★★★★★
()
Ответ на: комментарий от true_admin

> Не вижу связи с LD_PRELOAD

с заданной вероятностью возвращает NULL.

LamerOk ★★★★★
()
Ответ на: комментарий от winlogon

Задача ведь проверить как приложение поведет себя в случае если malloc вернет NULL. Если коды возврата не проверяются то скорее всего будет сегфлот.

winlogon
()

ulimit -m (здесь маленькое значение памяти в кб) ./your_proga

annoynimous ★★★★★
()
Ответ на: комментарий от true_admin

>что не найдёшь? Не вижу связи с LD_PRELOAD

Ошибку не найдёшь. Рандомно фейлящийся маллок ничего не поможет найти. Ну то есть поможет, но не всё. Тогда уж лучше маллок, начинающий возвращать нули после рандомного момента. Но с ulimit проще и симуляция тонее.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

рандомно фейлящий маллок надо на стресс-тестировании запускать. А так надо чтобы везде где есть malloc он хотя бы раз сбойнул. А лучше все возможные комбинации покрыть. LD_PRELOAD тут ни при чём, это просто механизм подмены malloc своей функцией.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> А лучше все возможные комбинации покрыть.

Рэндомным маллоком все пути выполнения утрахаишся задрачивать.

LD_PRELOAD тут ни при чём, это просто механизм подмены malloc своей функцией.


Так «механизм» или «ни при чём»? ))

LamerOk ★★★★★
()
Ответ на: комментарий от true_admin

> так надо и обработчик дебажить!!!11

Не дебаг, а тестирование. Обработчик не глибсишный, а пользовательский. )))

LamerOk ★★★★★
()
Ответ на: комментарий от namezys

ключиком mem при загрузке ядра ограничить, да

anonymous
()

форкбомбу запусти, да

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.