Цілий тиждень, починаючи з минулої неділі, я кожного вечора після роботи сідав за комп, логінився через два шелла на віддалений сервер і боровся з багом.
Є у мене один секретний проект який потихеньку починає виходити у люди, і от треба було запустити його на FreeBSD. На лінуксах все працювало нормально і нічого не віщало біди...
(
hall of shame )
Comments 4
Reply
А тут скоріше питання у FreeBSD, бо під лінуксами нічого подібного не спостерігається. Хоча я навіть не уявляю чому воно так залежить від ОС, я ж не думаю що у FreeBSD свої власні секретні патчі для компілятора. А розкрутка стека не така вже і низькорівнева штука щоб залежати від ядра.
Чи тут замішана libc?
Reply
А про те, чому баг специфічний для FreeBSD, важко сказати. libc у них справді різна.
Reply
Щодо питання - будуть викликані деструктори всіх сконструйованих членів елемента масиву, а потім деструктори всіх елементів масиву які на момент виникнення exception були сконструйовані, і в кінці - деструктори сконструйованих членів об'єкту верхнього рівня. Я зараз не можу вказати параграфів стандарту, але якщо треба - пошукаю ввечері коли буду вдома.
Мені важко навіть уявити яке відношення має libc до розгортки стеку під час обробки exception. Все таки exception - це "фіча" C++. Можливо вони використовують якісь власні патчі, не знаю. Не зміг навіть знайти багтреккеру FreeBSD.
Reply
Leave a comment