Определители формата в C++
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro и Team |
Обозначения:
Применяется |
|
Не применяется |
|
Команда или команды по умолчанию скрыты. |
При отладке машинного кода в окне контрольных значений или диалоговом окне "Быстрая проверка", можно изменить формат, в котором показаны значения, с помощью описателей формата.
(Большинство описателей формата используется только для машинного кода, но в Visual C# имеется ограниченный набор описателей. Сведения содержатся в разделе Определители формата в C#.)
Можно также использовать описатели форматов в окне интерпретации, окне команд и даже в окнах исходного кода. При наведении указателя на выражение в этих окнах, результат будет представлен в окне подсказки. Окна подсказки будут отображать описатель формата.
Пример
Предположим, что nVar — целочисленная переменная, и в окне "Наблюдение" показано, что она содержит значение 0x0065. Чтобы представить это значение в символьном, а не целочисленном формате, в столбце "Имя" после имени переменной добавьте указатель символьного формата c:
nVar,c
Вместо целочисленного значения 0x0065 столбец "Значение" теперь показывает символьное значение 101 'e'.
Если требуется применить указатель формата к элементам массива или членам объекта, необходимо применить его непосредственно к каждому элементу или члену. Ко всему массиву или объекту применить описатель невозможно. Например, предположим, что имеется массив nArray и необходимо представить первые четыре элемента в символьном формате. Для этого достаточно ввести в окне Наблюдение следующие выражения:
nArray[0],c
nArray[1],c
nArray[2],c
nArray[3],c
В следующих таблицах показаны указатели формата, распознаваемые отладчиком.
Описатель |
Формат |
Выражение |
Отображаемое значение |
---|---|---|---|
d,i |
Десятичное целое число со знаком |
0xF000F065, d |
-268373915 |
u |
Десятичное целое число без знака |
0x0065, u |
101 |
o |
Восьмеричное целое число без знака |
0xF065, o |
0170145 |
x,X |
Шестнадцатеричное целое число |
61541, x |
0x0000F065 |
l,h |
Префикс длинного или короткого формата для спецификаторов d, i, u, o, x и X |
00406042,hx |
0x0c22 |
f |
Число с плавающей запятой со знаком |
(3./2.), f |
1.500000 |
e |
Число в научном представлении со знаком |
(3./2.), e |
1.500000e+000 |
g |
Число с плавающей запятой со знаком или число в научном представлении со знаком, в зависимости от того, какой формат короче |
(3./2.), g |
1.5 |
c |
Отдельный знак |
0x0065, c |
101 'e' |
s |
String |
0x0012fde8, s |
"Hello world" |
su |
Строка Юникода |
0x0012fde8, su |
"Hello world" |
s8 |
Строка UTF-8 |
0x0012fde8, s8 |
"Hello world" |
hr |
Код ошибки HRESULT или Win32 (в настоящее время отладчик автоматически расшифровывает коды HRESULT, и в этих случаях данный описатель не требуется) |
0x00000000L, hr |
S_OK |
wc |
Флаг класса Window |
0x00000040, wc |
WC_DEFAULTCHAR |
wm |
Номер сообщения Windows |
0x0010, wm |
WM_CLOSE |
! |
Необработанный формат, все настройки представления типов данных не учитываются |
i ! |
4 |
В следующей таблице содержатся символы форматирования ячеек памяти. Описатель ячейки памяти можно использовать для любого значения или выражения, определяющего расположение ячейки.
Символ |
Формат |
Выражение |
Отображаемое значение |
---|---|---|---|
ma |
64 знака ASCII |
<адрес>, ma |
0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 |
m |
16 байт в шестнадцатеричном формате и затем 16 знаков ASCII |
<адрес>, m |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mb |
16 байт в шестнадцатеричном формате и затем 16 знаков ASCII |
<адрес>, mb |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mw |
8 слов |
<адрес>, mw |
0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
md |
4 двойных слова |
<адрес>, md |
0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
mq |
2 учетверенных слова |
<адрес>, mq |
0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
mu |
2-байтные знаки (Юникод) |
<адрес>, mu |
0x0012fc60 8478 77f4 ffff ffff 0000 0000 0000 0000 |
Описатель размера для представления указателей в виде массивов
Если есть указатель на объект, который требуется просмотреть в виде массива, то можно использовать целое число для указания числа элементов массива:
ptr,10
См. также
Задачи
Практическое руководство. Просмотр выражения в отладчике