Mulai cepat: Debug dengan C++ menggunakan penelusur kesalahan Visual Studio

Penelusur kesalahan Visual Studio menyediakan banyak fitur canggih untuk membantu Anda men-debug aplikasi Anda. Topik ini menyediakan cara cepat untuk mempelajari beberapa fitur dasar.

Membuat proyek baru

  1. Buka Visual Studio dan buat proyek.

    Tekan Esc untuk menutup jendela mulai. Ketik Ctrl + Q untuk membuka kotak pencarian, ketik c++, pilih Templat, lalu pilih Buat proyek Aplikasi Konsol baru. Dalam kotak dialog yang muncul, pilih Buat.

    Jika Anda tidak melihat templat proyek Aplikasi konsol Windows, buka Alat>Dapatkan Alat dan Fitur..., yang membuka alat penginstal Visual Studio. Alat Penginstal Visual Studio diluncurkan. Pilih beban kerja Pengembangan desktop dengan C++, lalu pilih Ubah.

    Visual Studio membuat proyek.

  2. Di MyDbgApp.cpp, ganti kode berikut

    int main()
    {
        return 0;
    }
    

    dengan kode ini (jangan hapus #include "stdafx.h"):

    #include <list>
    #include <iostream>
    
    using namespace std;
    
    void doWork()
    {
        list <int> c1;
    
        c1.push_back(10);
        c1.push_back(20);
    
        const list <int> c2 = c1;
        const int &i = c2.front();
        const int &j = c2.front();
        cout << "The first element is " << i << endl;
        cout << "The second element is " << j << endl;
    
    }
    
    int main()
    {
        doWork();
    }
    

Menetapkan titik henti

Titik henti adalah penanda yang menunjukkan di mana Visual Studio harus menangguhkan kode yang sedang berjalan sehingga Anda dapat melihat nilai variabel, atau perilaku memori, atau apakah cabang kode sedang dijalankan atau tidak. Ini adalah fitur paling mendasar dalam penelusuran kesalahan.

  1. Untuk menetapkan titik henti, klik di gutter di sebelah kiri panggilan fungsi doWork (atau pilih baris kode dan tekan F9).

    Set a breakpoint

  2. Sekarang tekan F5 (atau pilih Debug > Mulai Penelusuran Kesalahan).

    Hit a breakpoint

    Penelusur kesalahan dijeda di mana Anda mengatur titik henti. Pernyataan debugger dan eksekusi aplikasi dijeda ditunjukkan oleh panah kuning. Baris dengan panggilan fungsi doWork belum dijalankan.

    Tip

    Jika Anda memiliki titik henti dalam perulangan atau rekursi, atau jika Anda memiliki banyak titik henti yang sering Anda lewati, gunakan titik henti kondisional untuk memastikan bahwa kode Anda ditangguhkan HANYA saat kondisi tertentu terpenuhi. Titik henti kondisional menghemat waktu dan juga dapat mempermudah proses debug masalah yang sulit direproduksi.

    Saat mencoba men-debug kegagalan terkait memori di C++, Anda juga dapat menggunakan titik henti untuk memeriksa nilai alamat (mencari NULL) dan jumlah referensi.

Ada perintah yang berbeda untuk menginstruksikan penelusur kesalahan untuk melanjutkan. Kami menunjukkan perintah navigasi kode yang berguna yang tersedia mulai Visual Studio 2017.

Saat dijeda di titik henti, arahkan mouse ke atas pernyataan c1.push_back(20) hingga tombolRun to ClickJalankan untuk mengklik hijau muncul, lalu tekan tombol Jalankan untuk mengklik.

Run to click

Aplikasi melanjutkan eksekusi, memanggil doWork, dan menjeda pada baris kode tempat Anda mengeklik tombol tersebut.

Perintah keyboard umum yang digunakan untuk menelusuri kode termasuk F10 dan F11. Untuk instruksi yang lebih mendalam, lihat Tampilan awal di debugger.

Memeriksa variabel dalam datatip

  1. Di baris kode saat ini (ditandai dengan penunjuk eksekusi kuning), arahkan kursor ke objek c1 dengan mouse Anda untuk menampilkan datatip.

    View a datatip

    Datatip menunjukkan nilai variabel c1 saat ini dan memungkinkan Anda memeriksa propertinya. Saat menelusuri kesalahan, jika melihat nilai yang tidak diharapkan, Anda mungkin memiliki bug di baris kode sebelumnya atau panggilan.

  2. Perluas datatip untuk melihat nilai properti objek c1 saat ini.

  3. Jika Anda ingin menyematkan datatip sehingga Anda dapat terus melihat nilai c1 saat menjalankan kode, klik ikon pin kecil. (Anda dapat memindahkan datatip yang disematkan ke lokasi yang nyaman.)

Mengedit kode dan melanjutkan penelusuran kesalahan

Jika Anda mengidentifikasi perubahan yang ingin Anda uji dalam kode saat berada di tengah sesi penelusuran kesalahan, Anda juga dapat melakukannya.

  1. Klik instans c2.front() kedua dan ubah c2.front() ke c2.back().

  2. Tekan F10 (atau Debug > Step Over) beberapa kali untuk memajukan penelusur kesalahan dan menjalankan kode yang diedit.

    Edit and continue

    F10 memajukan pernyataan penelusur kesalahan satu per satu, tetapi melangkahi fungsi daripada melangkah ke dalamnya (kode yang Anda lewati masih dijalankan).

Untuk informasi selengkapnya tentang menggunakan edit dan lanjutkan dan pada batasan fitur, lihat Edit dan Lanjutkan.

Langkah berikutnya

Dalam tutorial ini, Anda telah mempelajari cara memulai penelusur kesalahan, menelusuri kode, dan memeriksa variabel. Anda mungkin ingin melihat fitur penelusur kesalahan tingkat tinggi bersama dengan link ke informasi lebih lanjut.