Debuger programu Visual Studio - wyświetlanie wartości całkowitych w formacie szesnastkowym

152

Używam Visual Studio 2008 i właśnie zauważyłem, że debugger wyświetla wartości całkowite jako Hex, kiedy najeżdżam kursorem na zmienne, a także w bezpośrednim oknie. Chyba przypadkowo nacisnąłem klawisz skrótu czy coś.

Ktoś miał to wcześniej? Jak przywrócić wyświetlanie w postaci dziesiętnej?

fizzer
źródło
Wierz lub nie wierz, ale to również zaburzało przyrost zadeklarowanych liczb całkowitych z dużymi ulewami, takimi jak f + 1 = 10 (dec).
Laurie Stearn

Odpowiedzi:

273

Kliknij prawym przyciskiem myszy okno czujki lub okno bezpośrednie i odznacz opcję Wyświetlanie szesnastkowe.

wprowadź opis obrazu tutaj

Leniel Maccaferri
źródło
4
nie było dostępne w oknie dialogowym narzędzi. Jedynym sposobem, w jaki mogłem to zmienić, było dodanie okna Zmienna do obserwowania i kliknięcie prawym przyciskiem myszy w polu Wartość, a następnie pole wyboru Wyświetlanie szesnastkowe.
fizzer
12
Udało mi się to zrobić w oknie stosu wywołań w VS2010.
StuperUser
1
Był na pasku narzędzi debugowania.
Breandán
2
Dzięki Bogu, pozbyłem się tej głupiej irytującej rzeczy. Dzięki @Leniel
Ali Umair
2
Nadal aktualne w 2020 z VS 2019!
Marc Levesque
45

Możesz również wybrać wyświetlanie szesnastkowe lub dziesiętne dla poszczególnych zmiennych w oknie obserwacyjnym programu Visual Studio , dołączając specyfikator formatu debugera do nazwy zmiennej. W oknie zegarka wprowadź:

myInt,h
myInt,d

Inne bardzo przydatne specyfikatory formatu to ac(patrz przypis) dla „zawsze obliczaj” i nqdla wyświetlania bez cudzysłowu. Mogą być używane razem:

my_string_func(),ac,nq

nqjest przydatny wewnątrz DebuggerDisplayatrybutów, które mogą pojawić się na klasie:

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

... lub na co najmniej jednym polu (polach) w klasie:

    [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

  • zwróć uwagę, że wcześniejsze wersje strony dokumentacji MSDN niepoprawnie podawały „Ac” (przez duże „A”) - co nie działa
Glenn Slayden
źródło
+1, ale chociaż MSDN stwierdza, że hjest to poprawny modyfikator dla wyświetlania szesnastkowego, wydaje się (przynajmniej w mojej wersji VS 2012 Premium), że xdziała zamiast tego (np. 1024,xZamiast 1024,h). Umieszczenie hzwraca błąd „CXX0026 zły łańcuch formatu”.
Groo
Podejrzewam, że może to zależeć od języka, w którym został napisany debugowany moduł. Z pewnością prawdą jest, że składnia wyrażeń debugera zmienia się w zależności od bieżącego języka. Z Twojej wiadomości wynika, że ​​używasz C ++; Odpowiedziałem jak dla C #, chociaż może nie powinienem był tego zakładać, skoro OP nie określa.
Glenn Slayden,
1
Zapewnia to lepszą dyskrecjonalną kontrolę nad formatowaniem w porównaniu z „wyświetlaniem szesnastkowym” wszystko albo nic
Fernando Gonzalez Sanchez
17

Gdy program Visual Studio jest uruchomiony w trybie debugowania, jest wyświetlany przycisk Hex, aby włączyć / wyłączyć wyświetlanie szesnastkowe

Tryb debugowania programu Visual Studio - przycisk szesnastkowy

DJ '
źródło
Jest to przeoczony przycisk, taki sam jak wyświetlanie szesnastkowe w menu kontekstowym, dziękuję.
Fredrick Gauss
11

Kliknij prawym przyciskiem myszy obszar klienta w prawie każdym oknie debugowania (z wyjątkiem okna bezpośredniego) - obserwuj / locals / autos / wątki / stos wywołań - i odznacz opcję „Wyświetlanie szesnastkowe” . Podczas debugowania na pasku narzędzi debugowania znajduje się również przycisk „Hex” (domyślnie po prawej stronie „Step Over”).

marchewek
źródło
9

W programie Visual Studio 2010 widziałem go również na pasku narzędzi Debugowanie, był podświetlony na żółto `` Hex '', po prostu go kliknąłem i wrócił do (normalnych) wartości dziesiętnych

Joe
źródło
3

W najbliższym oknie możesz odznaczyć opcję Hexadecimal Display.

user2704583
źródło