Отладка приложений


Точки прерывания Windows-сообщений - часть 3


These breakpoints have been moved to the next valid line.

(Одна или несколько точек прерывания не были позиционированы на правильной строке. Эти точки прерывания перемещены к следующей правильной строке).

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

Если отладчик вообще не может установить точку прерывания, вы получите сообщение:

One or more breakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program.

(Одна или несколько точек прерывания не могут быть установлены и были отключены. Выполнение остановится в начале программы.)

Нажав кнопку ОК, чтобы закрыть панель сообщения, нужно открыть диалоговое окно Breakpoints и отыскать точки прерывания со сброшенными флажками. Они-то и доставили неприятности отладчику.

Наиболее общей причиной отказа в установке точек прерывания является попытка установить точку прерывания в явно загруженную DLL — т. е. в DLL, загруженную явным обращением к API-функции LoadLibrary. Все DLL-файлы модели компонентных объектов (СОМ) загружаются явно, так что эта проблема возникает с раздражающей частотой. Отладчик должен установить все точки прерывания еще при запуске, поэтому в начале отладки нужно будет вручную добавить к списку дополнительных DLL явно загруженные DLL (чтобы заставить отладчик загрузить символы этих DLL). В диалоговом окне Project Settings на вкладке Debug выберите пункт Additional DLLs в списке Category. В списке Modules добавьте все DLL, которые проект может когда-либо загружать.

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

Эту панель можно открыть командой Project|Settings из Microsoft Visual C++.— Пер.

 




Начало  Назад  Вперед



Книжный магазин