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?


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


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

+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


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”).


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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.