Boris Morozov » 06 мар 2003, 21:59
Ошибки по 167 сегменту я наблюдал, когда в программе забываешь освободить какой-либо ресурс (длинную стрингу, динамический массив....), тогда при выгрузке программы виндовый менеджер памяти свихивается. Причем такие ошибки плавающие, зависят от конфигурации маздая. Но обязательным условием является глюк в прикладной программе. Крики и клятвы программеров, что у них все классно и прога работает годами ни о чем не говорят. Я самолично наблюдал, как программа, работающая 7 лет вдруг стала периодически у разных клиентов кидать Page Fault. Потом мои технологи нашли таки комбинацию, когда это стало стабильно проявляться. Ес-но нашелся глюк в старом престаром куске кода, когда неправильно приводились типы объектов. В программах. писаных на C, такие глюки заложены по определению, компилятор приводит что угодно, к чему угодно. А еще совершенно безобразный механизм работы со строками, из-за которого ошибка переполнения буфера стала классическим атрибутом программ на C.
В паскале для этого надо постараться, он такие штуки не любит.
У меня недавно была такая ситуация с обычным Outlook - при отправке почты стал выкидывать именно такую ошибку. С помощью шаманских плясок с перестановкой писем в очереди почту удавалось проталкивать, хотя не всегда, кое-что пришлось перекидывать через мозиллу. Все решилось через некоторое время после чистки папки Sent Items - я уже неоднократно наблюдаю, что когда количество записей в маздайских базах данных приближается к 1000, у них начинается резкое торможение и вылазят глюки. Народ и про Access жаловался, что пока базы до 1000 записей, все быстро - а потом резкие тормоза.
А повышенная вероятность глюка с NW клиентом вполне может быть связана с тем, что память распределилась по другому. Но еще раз повторюсь - первопричина это ошибка в приложении.