- •Введение в отладчик.
- •Подключение отладчика
- •Запуск отладчика
- •Разница между Step Over и Step Into
- •Run to Cursor
- •Значки инструментальной панели отладчика
- •Restart
- •Stop Debugging
- •Break Execution
- •Аpply Code Changes, Edit and Continue
- •Show Next Statement
- •Complete Word
- •Go To Definition/Reference
- •Insert/Remove Breakpoint
- •Окна отладчика
- •Окно Trace
- •Трассировка кода объекта
- •Трассировка процедурно-ориентированного кода
- •Окно Watch
- •Меню View I Debug Windows
- •Just-in-Time debugging
- •Страница Debug в окне Options
- •Раскладка клавиатуры
- •Короткие клавиши отладчика
Just-in-Time debugging
Имеется интересная опция отладки Just-in-Time debugging (назовем ее отладкой здесь-и-теперь). При отладке здесь-и-теперь ваше приложение работает вне интегрированной среды Visual C++, пока не происходит ошибки. При ошибке программы автоматически запускается отладчик Visual C++. Чтобы построить программу с возможностью отладки здесь-и-теперь, нужно сделать следующее:
1. Выберите Options в меню Tools.
2. Выберите закладку Debug.
3. Пометьте флажок Just-in-Time debugging.
4. Нажмите ОК.
5. В меню Build выполните Build <имя проекта>.exe.
Чтобы активировать отладку здесь-и-теперь в Windows NT, программист должен иметь привилегии администратора.
Страница Debug в окне Options
О
тладчик
очень гибок в отношении форматирования
выводимых данных. В то
время как многие опции можно менять
«на ходу», иногда предпочтителен
единообразный формат вывода. Рис.8показывает страницу Debug окна Орtions для
установки таких предопределенных
форматов. К странице Debug можно обратиться
через меню Tools | Options. Имеющиеся на странице
установки описываются в следующих
параграфах.
Рис.8 Страница Tools | Options | Debug.
В табл.5 даны комментарии к флагам опций отладчика MS VC++6.0.
Таблица 5. Опции Debug.
|
Hexadecimal display |
При установке этого флажка все выводимые значения представляются, а вводимые пользователем воспринимаются как шестнадцатеричные. Когда флажок помечен, обычные десятичные значения можно вводить с префиксом On, например Оn123456789. |
|
Source annotation. |
При установке флажка вывод вашего исходного кода сопровождается параллельным переводом на язык ассемблера. |
|
Code bytes |
При установке с каждой инструкцией ассемблера ассоциируются байты машинного кода. |
|
Symbols |
Опция выводит в окне Disassembly символические имена адресов. |
|
Parameter values |
Опция выводит в окне стека вызовов все значения, переданные в параметрах функций. |
|
Parameter types |
Опция выводит в окне стека вызовов информацию о типах переданных функции параметров. |
|
Return value |
Опция отображает в окне Variables значения, возвращаемые функциями. |
|
Load COFF & Exports |
Опция позволяет отладчику при отсутствии отладочной информации загружать COFF-формат или экспортируемые символы DLL. |
|
Address |
Окно Address позволяет указать начальный адрес по умолчанию для окна Memory Dump. |
|
Format |
Этот список позволяет выбрать формат по умолчанию для типа данных в окне дампа памяти; доступно 13 форматов, таких как ASCII, Byte, Long, Real и Int64. |
|
Re-evaluate expression |
Эта опция автоматически перемещает содержимое окна Memory Dump. Когда вы вводите в окне Memory Dump имя переменной-указателя, содержимое окна будет обновляться всякий раз, когда адрес в указателе меняется. При выключенной опции содержимое окна дампа меняться не будет, даже если адрес-содержимое переменной изменяется. |
|
Show data bytes |
Отображаются сырые байту данных. |
|
Fixed width |
Указывает формат фиксированной ширины для окна Memory Dump. Работает совместно со списком Format. |
|
Display Unicode strings |
Отображает строки формата Unicode. Это полезно, когда отлаживаемое приложение вводит и выводит тексты в многоязыковых форматах. |
|
View floating point registers |
Отображает в окне Registers содержимое регистров плавающей арифметики. |
|
Just-in-Time debugging |
Построенная с такой опцией программа может выполняться вне среды Visual Studio, загружая отладчик Visual C++ только при возникновении ошибки. |
|
OLE RFC debugging |
Позволяет отлаживать вызовы удаленных процедур. |
|
Debug commands invoke Edit and Continue |
Когда этот флажок установлен, многие, хотя и не все изменения исходного кода могут автоматически вноситься в исполняемый модуль программы при исполнении таких команд, как Go, Step Into, Step Over или Run. |
