Загадка несколько телепатическая, тому кто отгадает огромный респект
Есть некоторая программа соеджащая примерно такой код
while(...) {
...
Pobject p = new MyObject(...);
...
}
При компиляции штатным компилятором gcc 3.x в системах RedHat 9, ASP
Linux 9, Slackware 10, FreeBSD 5.3 и последующим запуском на
выполнение все работает "на ура".
При компиляции (штатным gcc 4.0.0-8) и последуюшем выполнении в
FedoraCore 4. Программа выпадает на операторе new на i-й итерации указанного кода. Вот что пишется в
корку
#0 0x009c2402 in __kernel_vsyscall ()
#1 0x00b611f8 in raise () from /lib/libc.so.6
#2 0x00b62948 in abort () from /lib/libc.so.6
#3 0x00b9652a in __libc_message () from /lib/libc.so.6
#4 0x00b9d3ea in _int_malloc () from /lib/libc.so.6
#5 0x00b9e792 in malloc () from /lib/libc.so.6
#6 0x00251bf6 in operator new () from /usr/lib/libstdc++.so.6
#7 0x080cda4f in Opencxx::GFunc::UpdateArgsByDefine (this=0x101e9ee8,
_fa_list=@0xbfa60f4c) at gxfunc.cc:361
в терминал выдается длинная колбаса начинающаяся так
*** glibc detected *** ./lnew_parser: malloc(): memory corruption: 0x10287b60 ***
Перегруженные new в моей программе отсутсвуют. Как программа может падать на стандартном new, объясните пожалуйста ?