Почему окно ЦП всегда появляется при попытке отладки моего проекта после перестройки в Delphi 2010? - PullRequest
2 голосов
/ 26 мая 2010

Всякий раз, когда я перестраиваю свое приложение и пытаюсь достичь точки останова, всегда появляется окно ЦП. Из того, что я понимаю, окно CPU появляется, когда DCU не совпадает с исходным файлом, однако, в моем случае DCU определенно перекомпилируется, и старые не лежат или что-то в этом роде.

Странная вещь здесь, если я закрываю приложение и заново открываю проект, устанавливаю точку останова и запускаю ее нормально. Я даже могу изменить файлы и просто нажать клавишу F9, чтобы запустить проект, и он работает нормально .... только когда я перестраиваю проект (через меню проекта IDE или контекстное меню проекта), это окно ЦП никогда не разбивается на источник (хотя он может его найти!).

Я также заметил в стеке вызовов, что единица с именем Generics всегда является вершиной стека, никогда не является единицей, в которой находится моя точка останова, это никак не связано с тем, где находится моя точка останова.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

Попробуйте проверить журнал событий Delphi.

Иногда Windows сама напишет OutputDebugString, а затем запускает точку останова , когда ваше приложение сделало что-то очень плохое, например ::

HEAP[Project1.exe]: HEAP: Free Heap block 32959a8 modified at 32959c0 after it was freed
Windows has triggered a breakpoint in Project1.exe.
This may be due to a corruption of the heap, and indicates a bug in Project1.exe or any of the DLLs it has loaded.
The output window may have more diagnostic information

Это также может быть Application Verifier (если вы его используете; если вы не должны это делать), сообщающий вам о проблеме.

0 голосов
/ 26 мая 2010

Здесь Я нашел предложение проверить Ignore non-user breakpoints в Debugger Options (D2009).

...