Ошибка "аварийного завершения программы" в D2007 IDE: есть ли обходной путь? - PullRequest
2 голосов
/ 25 августа 2010

Я сталкиваюсь с очень досадной ошибкой в ​​IDE D2007:

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

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

Вот что именно происходит:

Затем я изменяю строку кода (когда я нажимаю «ввод», чтобы перейти к следующей строке) сообщение

"Ошибка подтверждения: сумма> = dest - startDest, файл ek_flbuf.cpp, строка 315" .

и когда я нажимаю ОК, появляется второе сообщение " Аварийное завершение программы ".

Закрытие этого сообщения приводит к выходу из IDE.

При поиске в моей проблеме я нашел QC 33917, но статус Закрыт: Невозможно воспроизвести

Мои вопросы:

  • Есть ли какой-нибудь известный способ решения этой проблемы?
  • Может ли эта проблема быть вызвана сторонними вещами? (Я использую GExperts и Delphi SpeedUp)
  • Кто-нибудь здесь сталкивался с проблемой в более поздней IDE?

ОБНОВЛЕНИЕ: Я вспомнил, что проблема возникает впервые (месяц назад) в том же подразделении. так что, возможно, проблема не только в проекте, но и в модуле.

Я перезапустил Delphi и вернулся в той же функции, где сегодня возникает проблема, пытаясь воспроизвести ошибку, просто набрав некоторый код, а затем снова и снова удаляя его, как сумасшедший ...

просто перезапустить Delphi и отредактировать код в модуле (никаких других действий раньше), Мне удалось воспроизвести проблему во второй раз сегодня! , но не более, несмотря на множество новых подобных предположений ... :(

... все еще расследует. (и спасибо за ответы, я перестану пытаться воспроизвести ошибку и проверим подсказки ответчиков.)

Ответы [ 4 ]

4 голосов
/ 25 августа 2010

В последний раз я видел это, когда один из моих исходных файлов имел несовместимые окончания строк.

Убедитесь, что все ваши строки во всех ваших исходных файлах заканчиваются CRLF.

- Йерун

1 голос
/ 26 августа 2010

Когда я использовал 2007 и увидел это, это происходило только на очень длинных единицах (более 10000 строк - наличие такого количества является проблемой для другого обсуждения: p) Обычно в среде IDE все будет в порядке, тогда ввод текста будет довольно медленным - я в редакторе кода можно было видеть буквы, которые я набирал, отставая. Если я не остановлюсь и не позволю редактору наверстать упущенное, я получу эту ошибку.

Итак, мое исправление было:

  • Если вы в большом отряде и редактор начинает отставать, пауза , немедленно. Пусть он догонит и продолжит.

Это действительно раздражает, но у меня получилось.

Я также отключил многие функции Code Insight, но не знаю, затрагивали ли они эту конкретную проблему или нет. Они помогли общей скорости редактирования. Отключить их было рекомендовано мне на форумах Codegear. Я не могу вспомнить, кто, но у меня есть смутное ощущение, что, возможно, даже один из сотрудников Codegear QA знал об ошибке, но пытался выяснить, смогу ли я выяснить, что повлияло или вызвало ее. Хотя это было пару лет назад, поэтому не воспринимайте это как Евангелие.

Разделение ваших файлов на более мелкие, скажем, <5000 строк также может помочь. Для меня это произошло только на больших и сложных файлах. </p>

Эта проблема, похоже, была исправлена ​​в RAD Studio 2010. Другим способом избежать этой ошибки является обновление :) Если вы это сделаете, подождите несколько дней или сначала поговорите с их продавцами. Следующая версия RAD Studio XE выйдет в любой момент. В любом случае, я бы порекомендовал обновить: вам нужно будет решать проблемы с Unicode, но кроме этого, версия 2010 года - лучшая версия, которую я использовал, включая ее стабильность, и я использовал Delphi с версии 1.

0 голосов
/ 25 августа 2010

Если это происходит на двух разных компьютерах, но на одном и том же проекте, то проблема, скорее всего, в самом проекте, а не в IDE.Конечно, вы не опубликовали ни один код, вызывающий появление сообщения об ошибке, поэтому трудно помочь вам выяснить, в чем проблема с кодом.Я нахожу очень маловероятным, что проблема заключается в IDE, хотя другие сообщали бы об этой же проблеме (D2007 уже не использовался миллионами разработчиков уже несколько лет).

Если проблема заключается всама IDE, вы должны быть в состоянии воспроизвести ее с новым, пустым проектом.Скопируйте и вставьте только достаточно кода из старого проекта в новый, чтобы позволить проблемной строке скомпилироваться, а затем скопируйте то же самое изменение -> нажмите Enter, чтобы добавить новую строку - произойдет тот же сбой утверждения, а затем произойдет аварийное завершение?

Если вы не можете воспроизвести проблему в новом проекте, проблема, скорее всего, связана с вашим кодом, и, не видя его, трудно определить, что может быть причиной.

0 голосов
/ 25 августа 2010

Первое, что нужно попробовать, это удалить оба пакета дополнений (GExperts и Delphi Speedup).Это может быть что-то, что они делают.

Второй - сделать все возможное, чтобы воспроизвести и отправить проблему.

Третий - перейти на новую версию Delphi и надеяться, что она решит проблему.Ваши проблемы без создания новых.

...