Penggunaan Debugger dalam Visual C ++

oleh Peter Meyer

Ketika Menggunakan Debugger sebuah

Debugging adalah nama yang diberikan untuk proses menghilangkan bug dari program komputer. Ini tidak pernah dapat diselesaikan seluruhnya, karena "selalu ada satu bug yang terakhir." Namun, adalah mungkin untuk menghapus semua bug kecuali yang terakhir. Untuk ini penggunaan debugger bisa sangat membantu. Ini adalah program yang dirancang untuk memungkinkan Anda untuk melangkah melalui instruksi dalam program lain dan untuk memeriksa keadaan program yang di setiap langkah.

Debugging dimulai segera setelah Anda bertanya-tanya mengapa program anda tidak menghasilkan hasil yang Anda inginkan. Hal pertama yang harus dilakukan adalah untuk memastikan bahwa Anda C / C ++ kode mengkompilasi dan link tanpa kesalahan. Jika pesan kesalahan terjadi kode Anda harus dimodifikasi sehingga tidak terjadi.

Hal kedua yang perlu dilakukan adalah untuk memeriksa kode Anda dan membandingkan hasil yang diharapkan dengan apa yang Anda dapatkan. Kadang-kadang terjadi, bagaimanapun, bahwa pemeriksaan menyeluruh dari kode tidak mengungkapkan bug. Maka Anda mungkin ingin memasukkan beberapa kode debugging. Hal ini dapat terdiri dari pernyataan menegaskan memastikan bahwa variabel memiliki nilai-nilai yang Anda harapkan mereka untuk di titik-titik tertentu dalam program Anda (misalnya,   menegaskan (n> 0) ). Jika pernyataan gagal, program berhenti dengan pesan kesalahan.

Kode debug juga dapat terdiri dari pernyataan untuk mencetak (menggunakan printf atau cout ) nilai-nilai variabel tertentu pada tempat-tempat tertentu dalam kode Anda untuk memberikan informasi mengenai apa yang terjadi ketika program ini berjalan. Jika ini masih tidak membuang cahaya pada bug maka saatnya untuk menjalankan debugger.

Apa Debugger sebuah Dapat Dilakukan

  • Langkah melalui program satu pernyataan pada satu waktu, baik "lebih" atau "menjadi" fungsi.
  • Jalankan program sampai titik tertentu (baik untuk kursor atau ke "breakpoint") dan kemudian berhenti.
  • Menunjukkan nilai-nilai (atau isi) dari variabel pada setiap titik selama pelaksanaan program.

Cara Menggunakan Visual C ++ Debugger

Hal ini berlaku untuk Versi 5.00 dari Microsoft Visual C ++ Compiler. 
The debugger di versi sebelumnya atau lambat mungkin berbeda dalam beberapa hal.

Untuk menggunakan debugger di lingkungan pemrograman Visual C ++ Anda harus disusun dan dihubungkan program Anda menggunakan konfigurasi "Debug" (bukan "Release" konfigurasi). Konfigurasi diatur menggunakan pilihan menu Build | Set Konfigurasi Active . Ini adalah konfigurasi default, sehingga Anda tidak perlu mengatur kecuali Anda sebelumnya mengubah konfigurasi untuk "Release".

Biasanya tidak membantu untuk melangkah melalui pernyataan dalam program dimulai dengan pernyataan pertama di main () . Lebih baik untuk memiliki program jangka hingga sampai ke bagian kode Anda di mana Anda berpikir bug berada. Ada dua cara untuk memberitahu debugger untuk menjalankan ke titik ini. Anda dapat menemukan kursor di tempat itu dalam kode Anda dan tekan Ctrl-F10 (atau menggunakan Build | Mulai Debug | Lari ke kursor ). Program ini akan dijalankan oleh debugger dan jika semuanya berjalan dengan baik itu akan berhenti di tempat dalam kode Anda yang Anda pilih, dan jendela debugger akan dibuka. Tentu saja, ada kemungkinan bahwa program dapat mengakhiri sebelum tempat berhenti dimaksudkan Anda tercapai. Dalam hal ini, pilih tempat yang sebelumnya dalam program ini.

Cara kedua untuk memberitahu debugger untuk lari ke tempat di kode Anda yang ingin Anda untuk memeriksa adalah untuk menetapkan "breakpoint" di sana. Untuk menetapkan titik istirahat, posisi kursor di diinginkan tempat dan tekan F9 (atau menggunakan mouse-Kanan | Insert / Hapus Breakpoint ). Jika breakpoint telah ditetapkan maka Anda dapat menghapusnya dengan menempatkan kursor sebelahnya dan menekan F9 . (Breakpoints juga bisa dinonaktifkan dengan menggunakan F9 atau dengan mouse-Kanan | Disable Breakpoint .) Setelah Anda telah mengatur breakpoint kemudian tekan F5 (atau menggunakan Build | Mulai Debug | Go ) menyebabkan debugger untuk menjalankan program dan berhenti di breakpoint, dimana jendela debugger dibuka (jika mereka belum terbuka).

Jendela di kanan kiri dan bawah bawah layar tahan nama variabel dan nilai-nilai. Mereka di jendela kiri termasuk variabel lokal untuk fungsi yang sedang dijalankan.Mereka di jendela kanan yang ditentukan pengguna variabel. Untuk menentukan klik variabel pada bagian kiri baris kosong pertama kemudian ketik nama variabel. Setelah menekan Enter nilai variabel yang (jika memiliki nilai) akan ditampilkan. Anda kemudian dapat melihat bagaimana variabel ditampilkan mengubah nilai sebagai pelaksanaan program dilanjutkan.

Menekan F1 menampilkan Bantuan konteks-sensitif. Sebagai contoh, ia memberitahu kita perbedaan antara "Auto" variabel dan "Warga" variabel:

Tab Auto menampilkan informasi tentang variabel yang digunakan dalam laporan saat ini dan pernyataan sebelumnya. 
Tab Penduduk setempat menampilkan informasi tentang variabel yang lokal ke fungsi saat ini.

Untuk melihat nilai variabel tanpa harus mengetikkan nama, posisi kursor di suatu tempat dalam nama variabel dan tekan Shift-F9 (atau Debug | QuickWatch ).

Anda dapat melanjutkan eksekusi program dalam beberapa cara. Yang paling sederhana adalah dengan menekan F10 (atau Debug | Langkah Lebih ) untuk mengeksekusi pernyataan berikutnya (yang ditunjukkan oleh panah kuning kecil di margin kiri jendela kode). Menekan F10 berulang kali langkah melalui laporan Program berturut-turut.Hadir dengan informasi yang diberikan di jendela bawah. Misalnya, jika Anda berada di sebuah pernyataan

if ((j = atoi (buffer))> = 2000)

(yang mengubah string di penyangga ke integer, menempatkan nilai dalam variabel j dan membandingkan ini dengan 2000) kemudian setelah menekan F10 Anda akan diberitahu untuk nilai yang dikembalikan oleh atoi () .

Jika Anda berada di panggilan fungsi kemudian F10 menyebabkan fungsi yang akan dieksekusi dan ketika kembali debugger mengendalikan Anda berada di pernyataan berikutnya. Pada fungsi panggilan Anda dapat menekan F11 (atau Debug | Langkah Ke ) untuk memasukkan fungsi yang (jika kode untuk fungsi yang disusun dalam mode "Debug"). Anda kemudian dapat menggunakan F10 untuk melangkah melalui pernyataan dalam fungsi itu. Ketika Anda berada di dalam fungsi Anda dapat menekan Shift-F11 (atau Debug | Langkah Out ) untuk menjalankan melalui sisa fungsi dan kembali ke tempat di mana fungsi dipanggil.

Ketika debugger mulai membuka jendela untuk output program, sehingga Anda dapat beralih antara debugger dan jendela ini untuk melihat program apa yang sedang mengirim ke layar.

Selain F10 , F11 dan Shift-F11 Anda dapat menggunakan Ctrl-F10 (atau Debug | Lari ke kursor ) untuk menjalankan ke posisi kursor. Anda juga dapat mengatur breakpoints lebih lanjut dan menggunakan F5 (atau Debug | Go ) untuk lari ke masing-masing pada gilirannya. Anda dapat memiliki beberapa breakpoints aktif, dan Anda dapat menonaktifkan atau menghapusnya di akan dengan posisi kursor pada mereka dan menekan F9 .

Jika Anda ingin melihat definisi tempat variabel kursor dalam nama variabel dan menggunakan mouse-Kanan | Pergi ke Definition . Ini mungkin terjadi bahwa debugger akan memberitahu Anda bahwa itu tidak bisa melakukan ini sampai telah menciptakan database Browser, dalam hal kirim untuk melakukannya.

Browser adalah alat yang berguna yang dapat Anda gunakan untuk mendapatkan definisi dari setiap variabel dalam program Anda dan tempat dalam program Anda di mana variabel yang digunakan (dalam "referensi variabel"). Anda bisa memanggilnya dengan menggunakan Tools | Sumber Browser .

Jika program Anda membutuhkan argumen baris perintah maka selama debugging Anda dapat mengatur ini menggunakan Project | pengaturan | Debug | Argumen Program .

Untuk me-restart program dari pers dimulai Ctrl-Shift-F5 (atau Debug | Restart ).

Untuk menghentikan debugger dan kembali untuk mengedit penggunaan modus Shift-F5 (atau Debug | Berhenti Debugging ).

 

Ringkasan Key Perintah

F5                          Mulai eksekusi program, berjalan sampai breakpoint tercapai.
Pergeseran-F5        Berhenti debugging dan kembali ke program mode edit.
Ctrl-Shift-F5            Restart program dalam mode debugging.
F9                          Menyisipkan, menonaktifkan atau menghapus breakpoint.
Pergeseran-F9        Mendapatkan nilai variabel.
F10                        Mengeksekusi pernyataan atau fungsi saat panggilan.
Ctrl-F10                  Jalankan program ke titik di mana kursor berada.
F11                        Jika pernyataan saat ini adalah panggilan fungsi, melangkah ke fungsi.
Pergeseran-F11       Jika mengeksekusi fungsi, lari ke akhir dan kembali ke pernyataan yang menyerukan.

Source: http://www.hermetic.ch/cfunlib/debug.htm