Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, Valery A. Boronin, Вы писали:
D>[Skip]
VAB>>если известна область памяти которая затирается — если повезет и она одна и та же иногда, то есть решение
VAB>>- подключите к машине отладчик удаленный (WinDbg + VM Ware сгодится)
VAB>>- путем проигрывания проблемного сценария в виртуалке (чтобы шансы на воспроизведение были выше, лучше заснапшотить поближе к моменту падения и одно и тоже состояние проигрывать в надежде на те же адреса и т.п.), можно сделать так:
VAB>>- сначала падаем и смотрим по какому адресу проблема, адрес-диапазон запоминаем
VAB>>- перезапуск виртуалки и в отладчике ставим бряки на запись по этому адресу
VAB>>- удим рыбу
D>Могу предложить даже готовое решение как выловить такое место.
D>Есть такой продукт SmartHeap, который реализует скоростной менеджер кучи (подменяются все New, Alloc, etc.). В нем есть Debug DLL со множествами способов отладки таких ситуаций:
D>1. К каждому выделенному указателю присобачивается вначале и в конце дополнительные контрольные байты. Если их кто то перетер то через секунд 5 (настривается) выскакивает диалжг "Типа AAA указатель такой то был перетерт" — типа переполнение буфера, с дикой информацией Время выделения, CallStack выделения, Поток, иеще куча всего.
D>2. Некоторые указатели можна поставить на мониторинг, система буте следить что бы в них ничего не изменилось, случайно Работает по принципу чеканья области памяти на CRC через определенное время
D>3. DeferFree — интересная штука. Вы освобождаете указатель, но система не отдает его обратно в кучу, а держит его определенное время, забивает его специальными символами и следит что бы в него никто не записал.
D>4. Может и не все вспомнил... Читайте что можна тут: HeapAgent. Если заинтересовало, могу для теста выслать (продукт совсем и даже очень не бесплатный)
Если можно — вышли
PS:
А чем вышеописанные действия отличаются от того, что делает DevPartner? Просто с ним воспроизвести данный баг — нереально, из за огромного падения производительности
... << RSDN@Home 1.1.4 beta 4 rev. 303>>