Відладчик Visual Studio - відображення цілих значень у Hex


152

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

Хтось мав це раніше? Як повернути його до відображення у десятковій формі?


Вірите чи ні, це також засмучувало приріст оголошених цілих чисел з великими оопсами на кшталт f + 1 = 10 (dec).
Лорі Стерн

Відповіді:


273

Клацніть правою кнопкою миші годинник або негайне вікно та зніміть прапорець у параметрі «Шістнадцятковий дисплей».

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


4
недоступний у діалоговому вікні інструментів. Єдиний спосіб, коли я міг би його змінити, - це додати вікно "Змінна для перегляду" та клацнути правою кнопкою миші в полі Значення, і тоді я встановив прапорець "Шістнадцятковий дисплей".
fizzer

12
Мені вдалося це зробити у вікні стека викликів у VS2010.
StuperUser

1
Був на панелі інструментів налагодження для мене.
Breandán

2
Слава Богу, я позбувся цієї дурної дратівливої ​​речі. Дякуємо @Leniel
Ali 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 #, хоча, можливо, я не мав би цього вважати, оскільки ОП не вказав.
Гленн Слейден

1
Це забезпечує кращий дискреційний контроль над форматуванням у форматі "Шестнадцятковий дисплей" або все, що немає,
Фернандо Гонсалес Санчес

17

Існує кнопка Hex, яка відображається, коли Visual Studio запускається в режимі налагодження, щоб увімкнути / вимкнути показ Hex

Режим налагодження візуальної студії - шестигранна кнопка


Це непомітна кнопка, така ж як і шістнадцятковий дисплей у контекстному меню, дякую.
Фредрік Гаусс

11

Клацніть правою кнопкою миші на клієнтському просторі майже кожного вікна налагодження (крім негайного вікна) - спостерігати / локалі / авто / потоки / стек виклику - і зніміть прапорець "Шістнадцятковий дисплей" . Також на панелі інструментів налагодження є кнопка "Шістнадцяткована" (право на "Крок за кроком" за замовчуванням) під час налагодження.


9

У Visual Studio 2010 я також бачив це на панелі інструментів налагодження, він був виділений жовтим кольором «Шістнадцятковий», я просто натиснув його, і він повернувся до (нормальних) десяткових значень


3

У безпосередньому вікні ви можете зняти прапорець із опцією Шістнадцятковий екран.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.