Depurador do Visual Studio - Exibindo valores inteiros em Hex

152

Estou usando o Visual Studio 2008 e acabei de perceber que o depurador está exibindo valores inteiros como Hex quando passo o mouse sobre variáveis ​​e também na janela imediata. Acho que devo ter pressionado uma tecla de atalho acidentalmente ou algo assim.

Alguém já teve isso antes? Como faço para configurá-lo novamente para ser exibido em decimal?

fizzer
fonte
Acredite ou não, isso também estava perturbando o incremento de números inteiros declarados com grandes oopses como f + 1 = 10 (dec).
precisa

Respostas:

273

Clique com o botão direito do mouse na Janela de inspeção ou na Janela imediata e desmarque a opção Exibição hexadecimal.

insira a descrição da imagem aqui

Leniel Maccaferri
fonte
4
não estava disponível na caixa de diálogo Ferramentas. A única maneira de mudar de volta foi adicionar a janela Variável ao monitor e clicar com o botão direito do mouse no campo Valor e, em seguida, tive a caixa de seleção Exibição hexadecimal.
Fizzer
12
Consegui fazer isso na janela Pilha de chamadas no VS2010.
StuperUser
1
Estava na barra de ferramentas Depuração para mim.
Breandán
2
Graças a Deus eu me livrei dessa coisa estúpida e irritante. Obrigado @Leniel
Ali Umair
2
Ainda relevante em 2020 com o VS 2019!
Marc Levesque
45

Você também pode escolher a exibição hexadecimal ou decimal por variável na janela de inspeção do Visual Studio anexando um especificador de formato de depurador ao nome da variável. Na janela de inspeção, insira:

myInt,h
myInt,d

Os outros especificadores de formato muito úteis são ac(consulte a nota de rodapé) para 'sempre calcular' e nqpara exibir com 'sem aspas'. Eles podem ser usados ​​juntos:

my_string_func(),ac,nq

nqé útil dentro de DebuggerDisplayatributos, que podem aparecer em uma classe:

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

... ou em um ou mais campos dentro de uma classe:

    [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

  • observe que as versões anteriores da página de documento do MSDN diziam incorretamente 'AC' (com 'A' maiúsculo) - o que não funciona
Glenn Slayden
fonte
+1, mas embora o MSDN indique que hé o modificador correto para a exibição hexadecimal, parece (pelo menos na minha versão, VS 2012 Premium) que xfunciona em vez disso (por exemplo, em 1024,xvez de 1024,h). A colocação hretorna o erro "CXX0026 string de formato incorreto".
Groo
Eu suspeito que isso possa depender do idioma em que o módulo que está sendo depurado foi gravado. Certamente é verdade que a sintaxe da expressão do depurador muda de acordo com o idioma atual. Na sua mensagem, parece que você estava usando C ++; Eu respondi como se fosse C #, embora talvez eu não devesse ter assumido isso, já que o OP não especificou.
Glenn Slayden
1
Isso fornece um melhor controle discricionário na formatação versus o tudo ou nada da "exibição hexadecimal"
Fernando Gonzalez Sanchez
17

Há um botão Hex mostrado quando o Visual Studio é executado no modo de depuração para ativar / desativar a exibição Hex

Modo de depuração do Visual Studio - botão hex

DJ '
fonte
Este é um botão esquecido, igual ao Monitor hexadecimal no menu de contexto, obrigado.
Fredrick Gauss
11

Clique com o botão direito do mouse no espaço do cliente em quase todas as janelas de depuração (exceto Janela Imediata) - watch / locals / autos / threads / call stack - e desmarque a opção "Exibição hexadecimal" . Há também um botão "Hex" na barra de ferramentas de depuração (à direita para "Avançar" por padrão) ao depurar.

marchewek
fonte
9

No Visual Studio 2010, eu também o vi na barra de ferramentas Debug, destacada em amarelo 'Hex', cliquei nele e retornei aos valores decimais (normais)

Joe
fonte
3

Na janela imediata, você pode desmarcar a opção Exibição hexadecimal.

user2704583
fonte