crypt of decay [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

we're all mad here. i'm mad, you're mad. [May. 22nd, 2012|10:02 am]
[Tags|, , ]

цпп. перекрытый delete в объекте. периодически глючит, причём охуенно: память освобождается, но больше, похоже, никакого кода из деструктора не вызывается. то есть, valgrind показывает на free, находящийся в коде деструктора. но логи не пишет, из списка живых объект не вычёркивает — то есть, НИКАКОЙ больше код не исполняется. так в принципе быть не может, вообще. мистика. причём очень нечасто и только для одного типа объектов. поскольку из списка живых объект не исключён, шедулер пытается его потыкать, попадает пальцем в жопу и роняет софтину. на этом месте valgrind показывает, что освобождение состоялось, и состоялось именно в коде delete. но в логах — молчок, из списков живых не вычеркнут. mingw древний, gcc 4.7, -O0, -O2 — один хуй.

код совершенно обычный. разве что мультинаследование от объекта-прототипа на шаблоне и от одного конкретного. delete перекрыт в базовом объекте, который наследуют абсолютно все. больше нигде перекрытого delete нет. всегда это работало без проблем. мазать памятью не мажет: и указателей минимум, всё на ссылках да объектах, и valgrind не ругается.

p.s. да, блядь, я знаю разницу между «классом» и «объектом». сами подставьте где надо слово «класс».
Link19 meows|meow!

navigation
[ viewing | most recent entries ]