Отладчик Visual Studio - отображение целочисленных значений в шестнадцатеричном формате

152

Я использую Visual Studio 2008, и я только что заметил, что отладчик отображает целочисленные значения в виде Hex, когда я наводю курсор мыши на переменные, а также в непосредственном окне. Наверное, я случайно нажал на горячую клавишу или что-то в этом роде.

Кто-нибудь имел это раньше? Как установить его обратно в десятичном формате?

Fizzer
источник
Хотите верьте, хотите нет, но это также расстраивало приращение объявленных целых чисел с большими значениями типа oopses f + 1 = 10 (dec).
Лори Стерн

Ответы:

273

Щелкните правой кнопкой мыши окно просмотра или окно немедленного просмотра и снимите флажок «Шестнадцатеричное отображение».

введите описание изображения здесь

Лениэль Маккаферри
источник
4
не был доступен в диалоге инструментов. Единственный способ вернуть его обратно - это добавить переменную в окно наблюдения и щелкнуть правой кнопкой мыши в поле «Значение», а затем у меня появился флажок «Шестнадцатеричное отображение».
fizzer
12
Я смог сделать это в окне Call Stack в VS2010.
StuperUser
1
Был на панели инструментов отладки для меня.
Бреандан
2
Слава Богу, я избавился от этой глупой раздражающей вещи. Спасибо @Leniel
Али Umair
2
Все еще актуален в 2020 году с VS 2019!
Марк Левеск
45

Вы также можете выбрать шестнадцатеричное или десятичное отображение для каждой переменной в окне просмотра Visual Studio , добавив спецификатор формата отладчика к имени переменной. В окне просмотра введите:

myInt,h
myInt,d

Другими очень полезными спецификаторами формата являются ac(см. Сноску) для «всегда вычислять» и nqдля отображения «без кавычек». Их можно использовать вместе:

my_string_func(),ac,nq

nqполезно внутри DebuggerDisplayатрибутов, которые могут появляться в классе:

[DebuggerDisplay("{my_string_func(),nq}")]
class MyClass
{
    /* ...example continues below... */

... или на одном или нескольких полях внутри класса:

    [DebuggerDisplay("{some_field,nq}", Name="substitute name here")]
    int an_integer;

    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    String some_field;
}

http://msdn.microsoft.com/en-us/library/e514eeby(v=VS.100).aspx

  • обратите внимание, что более ранние версии страницы документации MSDN неправильно говорили «Ac» (с большой буквы «A») - что не работает
Гленн Слэйден
источник
+1, но хотя MSDN утверждает, что hэто правильный модификатор для шестнадцатеричного отображения, кажется (по крайней мере, в моей версии, VS 2012 Premium), что xработает вместо (например, 1024,xвместо 1024,h). Размещение hвозвращает ошибку «CXX0026 неверный формат строки».
Groo
Я подозреваю, что это может зависеть от языка, на котором был написан отлаживаемый модуль. Конечно, синтаксис выражений отладчика изменяется в соответствии с текущим языком. Из вашего сообщения видно, что вы использовали C ++; Я ответил так, как будто для C #, хотя, возможно, я не должен был предположить, что, поскольку OP не указал.
Гленн
1
Это обеспечивает лучший дискреционный контроль при форматировании по сравнению со всем или ничем из «шестнадцатеричного отображения»
Фернандо Гонсалес Санчес
17

При запуске Visual Studio в режиме отладки отображается шестнадцатеричная кнопка для включения / выключения шестнадцатеричного отображения.

Режим отладки Visual Studio - шестнадцатеричная кнопка

DJ»
источник
Это кнопка с пропуском, такая же, как шестнадцатеричный дисплей в контекстном меню, спасибо.
Фредрик Гаусс
11

Щелкните правой кнопкой мыши по клиентскому пространству почти в каждом окне отладки (кроме Immediate Window) - смотрите / locals / autos / threads / стек вызовов - и снимите флажок «Шестнадцатеричное отображение» . При отладке также имеется кнопка «Hex» на панели инструментов отладки (по умолчанию она имеет право «Step Over»).

marchewek
источник
9

В Visual Studio 2010 я также видел его на панели инструментов отладки, он был выделен желтым «Hex», я просто щелкнул по нему, и он вернулся к (нормальным) десятичным значениям

Джо
источник
3

В ближайшем окне вы можете снять флажок шестнадцатеричный дисплей.

user2704583
источник