Visual Studio debugger - Menampilkan nilai integer dalam Hex

152

Saya menggunakan Visual Studio 2008 dan saya baru saja memperhatikan bahwa debugger menampilkan nilai integer sebagai Hex ketika saya mengarahkan variabel dan juga di jendela langsung. Saya kira saya harus menekan tombol pintas secara tidak sengaja atau sesuatu.

Adakah yang pernah mengalami ini sebelumnya? Bagaimana cara mengaturnya kembali untuk ditampilkan dalam desimal?

fizzer
sumber
Percaya atau tidak, ini juga mengganggu kenaikan bilangan bulat yang dinyatakan dengan oopses besar seperti f + 1 = 10 (dec).
Laurie Stearn

Jawaban:

273

Klik kanan Jendela Tontonan atau Jendela Segera dan hapus centang opsi Tampilan Heksadesimal.

masukkan deskripsi gambar di sini

Leniel Maccaferri
sumber
4
tidak tersedia di Alat Dialog. Satu-satunya cara saya dapat mengubahnya kembali adalah menambahkan Variable to Watch window dan klik kanan di bidang Value dan kemudian saya memiliki kotak centang Display Hexadecimal.
fizzer
12
Saya bisa melakukannya di jendela Call Stack di VS2010.
StuperUser
1
Ada di bilah alat Debugging untuk saya.
Breandán
2
Terima kasih Tuhan, aku menyingkirkan hal menjengkelkan ini. Terima kasih @Leniel
Ali Umair
2
Masih relevan di tahun 2020 dengan VS 2019!
Marc Levesque
45

Anda juga dapat memilih tampilan heksadesimal atau desimal pada basis per variabel di jendela arloji Visual Studio dengan menambahkan penentu format debugger ke nama variabel. Di jendela arloji, masukkan:

myInt,h
myInt,d

Penentu format yang sangat berguna lainnya adalah ac(lihat catatan kaki) untuk 'selalu menghitung', dan nquntuk ditampilkan dengan 'tanpa tanda kutip.' Mereka dapat digunakan bersama:

my_string_func(),ac,nq

nqberguna di dalam DebuggerDisplayatribut, yang dapat muncul di kelas:

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

... atau pada satu bidang atau lebih di dalam kelas:

    [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

  • perhatikan bahwa versi sebelumnya dari halaman dokumen MSDN salah mengatakan 'Ac' (dengan huruf besar 'A') - yang tidak berfungsi
Glenn Slayden
sumber
+1, tetapi meskipun MSDN menyatakan itu hadalah pengubah yang benar untuk tampilan hex, tampaknya (setidaknya dalam versi saya, VS 2012 Premium) yang xberfungsi sebagai gantinya (misalnya 1024,xbukannya 1024,h). Menempatkan hmengembalikan kesalahan "string format CXX0026 format buruk".
Groo
Saya menduga bahwa mungkin tergantung pada bahasa yang modul yang sedang didebug ditulis. Memang benar bahwa sintaks ekspresi debugger berubah sesuai dengan bahasa saat ini. Dari pesan Anda, tampaknya Anda menggunakan C ++; Saya menjawab seolah-olah untuk C #, meskipun mungkin saya seharusnya tidak berasumsi bahwa karena OP tidak menentukan.
Glenn Slayden
1
Ini memberikan kontrol diskresi yang lebih baik pada pemformatan vs semua atau tidak sama sekali "Tampilan Heksadesimal"
Fernando Gonzalez Sanchez
17

Ada tombol Hex yang ditampilkan ketika Visual Studio dijalankan dalam mode Debug untuk mengaktifkan / menonaktifkan tampilan Hex

Mode Visual Studio Debug - tombol hex

DJ
sumber
Ini adalah tombol yang diabaikan sama dengan Tampilan Heksadesimal dalam menu konteks, terima kasih.
Fredrick Gauss
11

Klik kanan pada ruang klien di hampir setiap jendela debug (kecuali Jendela Segera) - tontonan / lokal / autos / utas / panggilan stack - dan hapus centang opsi "Tampilan Heksadesimal" . Ada juga tombol "Hex" di bilah alat debug (kanan ke "Step Over" secara default) saat debugging.

marchewek
sumber
9

Dalam Visual Studio 2010 saya juga melihatnya di bilah alat Debug, itu disorot dengan warna kuning 'Hex', saya hanya mengkliknya dan kembali ke nilai desimal (normal)

Joe
sumber
3

Di jendela langsung Anda dapat menghapus centang opsi Tampilan Heksadesimal.

pengguna2704583
sumber