понедельник, 20 сентября 2010 г.

Delphi WinDbg Extension Dll

   Время от времени я занимаюсь анализом дампов скомпилированных в Delphi приложений. Не так чтобы профессионально, но в большинстве случаев удается выяснить причину проблемы. И каждый раз возникает желание как-то автоматизировать и облегчить сей процесс.

четверг, 16 сентября 2010 г.

MAPI, Exchange и Shutdown

   Недавно столкнулся с интересным случаем, когда при завершении работы системы отображалось окно "Программа завершается... Пожалуйста подождите" со временем переходящее в "Программа не отвечает". Ситуация воспроизводилась не каждый раз, но более-менее стабильно.
   Т.о. цикл историй о "зависаниях" при завершении работы системы продолжается :).

среда, 1 сентября 2010 г.

Анализ дампов приложений, написанных на Delphi

   Приложения могут содержать ошибки. Некоторые проявляются воспроизводятся легко и, как правило, не выходят за пределы отдела программирование (другими словами - не попадают к заказчику/клиенту). А некоторые появляются при весьма экзотических внешних условиях.

среда, 25 августа 2010 г.

Как создать дамп процесса

   Несколько утилит, с помощью которых можно создать дамп памяти процесса (пользовательский дамп).

вторник, 17 августа 2010 г.

вторник, 27 июля 2010 г.

Простой пример зависшего на shutdown-е приложения

   Небольшой тестовый пример, демонстрирующий методику поиска причины завичания приложения при завершении работы системы [1].

   Практическая часть, так сказать :)

Методика диагностики зависания приложения при shutdown-е

   Исходная позиция: есть некое приложение app.exe (Проблемное приложение), которое "подвисает" при завершении работы системы, в результате чего отображается окно "Программа не отвечает" (либо "Завершение программы").
   Задача: найти отчет на вопрос "почему".
   Цель: решить проблему (в идеале - навсегда).

   Достижение поставленной цели - это отдельная песня и здесь обсуждаться не будет :)
   Речь пойдет о методах и приемах, с помощью которых можно определить причину такого поведения приложения.