Delphi 2009 вызывает ошибки shell32.dll? - PullRequest
0 голосов
/ 12 ноября 2009

У меня есть пользователь, который начал испытывать нарушения прав доступа, связанные с его файлом shell32.dll, при использовании моего программного обеспечения. Это начало происходить после обновления до последней версии нашего программного обеспечения, которая является первой выпущенной нами версией, скомпилированной в D2009.

Никто больше не сообщает об этих проблемах с AV, и я не смог их воспроизвести сам. Так что, похоже, это как-то связано с его конкретной установкой Windows. Я использую EurekaLog, поэтому могу сказать, что некоторые из этих AV связаны с созданием или отображением различных форм в приложении. Часто в качестве последней вещи в стеке вызовов указывается следующая ссылка:

shell32.dll > ILIsEqual

У кого-нибудь есть идеи о том, как заставить этого пользователя снова работать? Или как я могу получить больше подсказок относительно того, в чем на самом деле проблема? В прошлом я обнаружил, что эти ошибки, которые возникают только на компьютере одного пользователя, очень трудно отследить ....

1 Ответ

1 голос
/ 12 ноября 2009

Согласен, такие ошибки сложно воспроизвести. Вот почему качественное ведение журнала так важно. Я бы использовал следующий подход с такой проблемой.

  1. Используйте хороший метод регистрации (он у вас уже есть)
  2. Когда ошибка происходит, пользователь отправляет вам отчет (у вас уже есть отчет)
  3. Проверьте в отчете как можно больше пользовательских настроек компьютера
  4. Проверьте трассировку стека и посмотрите, где в вашем коде произошла ошибка или какой последний вызов был сделан вашим кодом.
  5. Если вы все еще не можете найти или воспроизвести ошибку, создайте новую ветвь своего приложения в своей системе управления версиями. В этой ветке увеличьте количество журналов вокруг места, которое вы указали в трассировке стека. Войти как можно больше. Отправьте пользователю эту версию.
  6. Дождаться следующего отчета пользователя.
  7. Повторите процедуру и попытайтесь регистрировать еще больше, и, возможно, при необходимости увеличьте радиус большого журнала.

Если у вас есть время, вы также можете поговорить с пользователем. Таким образом, иногда они сообщают вам важную новую информацию, которая может вам помочь.

На прошлой неделе у меня было две неприятные ошибки. Я только начал методично двигаться к цели. И когда я уловил запах ошибки, это был только вопрос времени, чтобы найти ее. Я узнал, что если вы методичны, рано или поздно вы найдете причину.

...