Bagikan melalui


Mengakses Variabel Global

Nama variabel global disimpan dalam file simbol yang dibuat saat aplikasi dikompilasi. Debugger menginterpretasikan nama variabel global sebagai alamat virtual. Perintah apa pun yang menerima alamat sebagai parameter juga menerima nama variabel. Oleh karena itu, Anda dapat menggunakan semua perintah yang dijelaskan dalam Mengakses Memori oleh Alamat Virtual untuk membaca atau menulis variabel global.

Selain itu, Anda dapat menggunakan ? (Evaluasi Ekspresi) perintah untuk menampilkan alamat yang terkait dengan simbol apa pun.

WinDbg menyediakan elemen antarmuka pengguna yang dapat Anda gunakan (selain perintah) untuk melihat dan mengedit variabel global. Lihat Melihat dan Mengedit Variabel Global di WinDbg (Klasik).

Pertimbangkan contoh berikut. Misalkan Anda ingin memeriksa MyCounter variabel global, yang merupakan bilangan bulat 32-bit. Misalkan juga bahwa radix default adalah 10.

Anda dapat memperoleh alamat variabel ini lalu menampilkannya sebagai berikut.

0:000> ? MyCounter 
Evaluate expression: 1244892 = 0012fedc
0:000> dd 0x0012fedc L1 
0012fedc  00000052

Output perintah pertama memberi tahu Anda bahwa alamat MyCounter 0x0012FEDC. Anda kemudian dapat menggunakan perintah d* (Memori Tampilan) untuk menampilkan satu kata ganda di alamat ini. (Anda juga dapat menggunakan 1244892, yang merupakan versi desimal alamat ini. Namun, sebagian besar programmer C lebih suka menggunakan 0x0012FEDC.) Perintah kedua memberi tahu Anda bahwa nilai MyCounter 0x52 (desimal 82).

Anda juga dapat melakukan langkah-langkah ini dalam perintah berikut.

0:000> dd MyCounter L1 
0012fedc  00000052

Untuk mengubah nilai MyCounter menjadi desimal 83, gunakan perintah berikut.

0:000> ed MyCounter 83 

Contoh ini menggunakan input desimal, karena format tersebut tampaknya lebih alami untuk bilangan bulat. Namun, output perintah d\* masih dalam format heksadesimal.

0:000> dd MyCounter L1 0012fedc  00000053