Есть ли способ подавить вывод, который генерирует 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;
}