подавление вывода трассировки стека повреждения памяти glibc

Есть ли способ подавить вывод, который glibc генерирует при повреждении памяти ? Вот что я вижу

make
*** glibc detected *** /home/myname/php/sapi/cli/php: free(): invalid pointer:  x0045d67f ***
======= Backtrace: =========
/lib/libc.so.6(+0x6eb41)[0x380b41]

<snip>
======= Memory map: ========
00115000-00116000 r-xp 00000000 00:00 0          [vdso]
001d7000-001ee000 r-xp 00000000 ca:01 540738     /lib/libpthread-2.12.2.so
001ee000-001ef000 r--p 00016000 ca:01 540738     /lib/libpthread-2.12.2.so
001ef000-001f0000 rw-p 00017000 ca:01 540738     /lib/libpthread-2.12.2.so
<snip>

Что касается работы, которую я выполняю, мне наплевать на эту информацию, важно только то, что make не удалась (возвращаемое значение! = 0). Эти сообщения заполняют экран, что делает остальную часть моего вывода нечитаемой. Я пробовал:

make &> /dev/null
{ make ; } &> /dev/null
x=`make 2>&1` &> /dev/null

, но ни один из них не улавливал вывод. Если он не записывается в stderr, черт возьми, откуда он берется? Я бы хотел решение, которое не требует перестройки glibc, если это возможно.

Вот код, который выдает такое сообщение об ошибке, но учтите, что это не имеет ничего общего с кодом, над которым я работаю (исходный код php код). Я просто хочу отключить этот тип вывода с моей консоли.

int main()
{
    char* ptr = (char*)malloc(sizeof("test"));
    char array[]= "test";
    ptr = array;
    free(ptr);
    return 0;
}
5
задан Lucina 16 August 2011 в 21:38
поделиться