Как установить условную точку останова, если malloc возвращает NULL через gdb

Пример исходного кода:

#include        <stdio.h>
#include        <stdlib.h>
#include        <errno.h>

#define         GIGABYTE        1024*1024*1024

int
main (void)
{
        void    *foo;
        int     result;

        foo = (void *) malloc (GIGABYTE*5);
        result = errno;

        if (foo != NULL) {
                return 2;
        } else {
                fprintf (stderr, "ERROR: %d\n", result);
                return 1;
        }
        return 0;
}

Вопрос:

  • Как указать gdb ( # gdb -silent ./huge_malloc) остановить / остановить выполнение , если malloc () возвращает 0x0 , без проверки, является ли foo 0x0
7
задан Aaron 21 December 2010 в 11:53
поделиться