Скачиваний:
19
Добавлен:
17.04.2013
Размер:
377.34 Кб
Скачать

Окно Watch

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

Категория Name показывает имена текущих наблюдаемых выражений; за ними идет колонка Values с их значениями. Категория Туре позволяет видеть символы, представляющие тип данных для наблюдаемых выражений. Кроме того, в окне Watch можно выделять выражения, удалять их и добавлять контрольные точки.

Меню View I Debug Windows

Активировать скрытые или свернутые окна отладчика Visual C++ можно посредством выбора меню View или View | Debug Windows с последующей категорией из тех, что описаны ниже.

Workspace

Панель, или окно Workspace показывает исходные файлы, объекты классов и ресурсы текущего проекта.

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

Output

Этот пункт активирует окно Debug Output. Заметьте, что если окна состыкованы, нет никакой визуальной индикации того, что они были активированы, хотя соответствующие опции меню включены или выключены.

Clear Output Window

Это окно удаляет весь текст, выведенный в окне Debug Output (которое активно только в контекстном меню окна Output — щелкните в нем правой кнопкой мыши).

Наблюдение переменных как данных различного типа.

В последующих главах вы начнете применять опции отладчика, описанные в предыдущих разделах. Однако прежде чем смотреть на данные, выводимые в разные окна отладчика, вам следует ознакомиться с форматирующими символами, показанными в табл.3. Эти символы позволяют также изменять формат представления переменных в окнах Quick Watch и Watch.

В окне Watch можно изменять интерпретацию типа данных переменной. Форматирующий символ там просто вводится сразу за именем переменной с разделительной запятой. Например, если hexNumber имеет значение 0x0041, а вы хотите видеть значение в символьной форме, в категории Name окна Watch введите hexNumber, с. Когда вы нажмете ENTER, появится символьный формат значения:

HexNumber,c = 'A'

Таблица 3. Форматирующие символы дисплея отладчика

Символ

Формат

Значение

Представление

d,l

Десятичное целое со знаком

0xF000F061

-268373911

U

Десятичное целое без знака

0x0066

102

O

Восьмеричное целое без знака

0xF064

0170144

х,Х

Шестнадцатеричное целое

70148 (десятичное)

0x000011204

l,h

префикс long или short для d, i, u, о, х, X

00406040,hx

0х0с20

F

Десятичная нотация со знаком

5./2.

2.500000

Е

научная нотация со знаком

5./2.

2.500000е+004

G

Десятичная или научная нотация со знаком, какая короче

5./2.

2.5

С

одиночный символ

0x0066

Т

S

Строка

Ox0012fde8

"The String"

Su

строка Unicode

"The String"

St

строка Unicode или ASCII в зависимости от установки Unicode Strings

Hr

HRESULT или код ошибки Win32

0x00000000L

S OK

We

флаг класса Windows

0x000000040

WC DEFAULTCHAR

Wm

номер сообщения Windows

0x0010

WM CLOSE

В табл.4 перечислены форматирующие символы, применяемые в окне Watch для форматирования содержимого памяти.

Таблица 4. Форматирующие символы для ячеек памяти

Символ

Формат

Формат . :f-

Ma

64 символа ASCII

M

16 байт в шестнадцатеричном, далее 16 символов ASCII

Mb

16 байт в шестнадцатеричном, далее 16 символов ASCII

Mw

8 слов

Md

4 двойных слова

Mq

4 по четыре слова

Mu

2-байтовые символы (Unicode)

Вы также можете пользоваться форматирующими значениями для содержимого памяти в применении к любым выражениям, оцениваемым как адрес. Для представления массива символов в виде строки поставьте перед именем массива амперсант: &ArrayName. Можно за выражением поставить еще и форматирующий символ: &ArrayName,x.

Наконец, для наблюдения за значением по специфическому адресу или значением, на которое указывает регистр, пользуйтесь операциями BY, WO или DW:

BY- возвращает содержимое указанного байта.

DW- возвращает содержимое указанного двойного слова.

WO- возвращает содержимое указанного слова.

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

Можно также использовать контекстные скобки { } для вывода содержимого любой ячейки. Для вывода строки Unicode в окнах Watch и Quick Watch пользуйтесь спецификатором формата su. Для вывода байтов данных с помощью символов Unicode применяйте спецификаторmu.

Форматирующие символы работают с массивами, структурами, указателями и объектами только в качестве нераскрытых переменных. Если вы раскрываете объект, форматирующий символ будет отнесен ко всем его элементам. Применять же форматирующие символы к отдельным элементам нельзя.