Langkah 4: Jalankan kode di debugger

Langkah sebelumnya:Gunakan jendela REPL Interaktif

Visual Studio menyediakan kemampuan untuk mengelola proyek, pengalaman pengeditan yang kaya, jendela Interaktif, dan penelusuran kesalahan berfungsi lengkap untuk kode Python. Dalam debugger, Anda dapat menjalankan kode Anda langkah demi langkah, termasuk setiap iterasi perulangan. Anda juga dapat menjeda program setiap kali kondisi tertentu benar. Kapan saja ketika program dijeda dalam debugger, Anda dapat memeriksa seluruh status program dan mengubah nilai variabel. Tindakan tersebut sangat penting untuk melacak bug program, dan juga memberikan bantuan yang bermanfaat untuk mengikuti alur program yang tepat.

  1. Ganti kode dalam file PythonApplication1.py dengan kode berikut. Variasi kode ini diperluas make_dot_string sehingga Anda dapat memeriksa langkah-langkah diskritnya dalam debugger. Ini juga menempatkan perulangan for ke dalam main fungsi dan menjalankannya secara eksplisit dengan memanggil fungsi tersebut:

    from math import cos, radians
    
    # Create a string with spaces proportional to a cosine of x in degrees
    def make_dot_string(x):
        rad = radians(x)                             # cos works with radians
        numspaces = int(20 * cos(rad) + 20)          # scale to 0-40 spaces
        st = ' ' * numspaces + 'o'                   # place 'o' after the spaces
        return st
    
    def main():
        for i in range(0, 1800, 12):
            s = make_dot_string(i)
            print(s)
    
    main()
    
  2. Periksa apakah kode berfungsi dengan benar dengan menekan F5 atau memilih perintah menu Debug>Mulai Debugging. Perintah ini menjalankan kode di debugger. Sampai saat ini, tidak ada yang dilakukan untuk menjeda program saat sedang berjalan, itu hanya akan mencetak pola gelombang untuk beberapa iterasi. Tekan tombol mana saja untuk menutup jendela output ini.

    Tip

    Untuk menutup jendela output secara otomatis saat program selesai, pilih menu perintah Opsi>Alat, perluas simpul Python, pilih Debugging, dan kemudian hapus opsi Tunggu input saat proses ada secara normal:

    Python debugging option to close the output window on normal program exit

    Untuk informasi selengkapnya tentang penelusuran kesalahan dan cara mengatur argumen skrip dan interpreter, lihat Men-debug kode Python Anda.

  3. Atur titik henti pada for pernyataan dengan mengklik sekali di marjin abu-abu dengan garis tersebut, atau dengan menempatkan caret di garis tersebut dan menggunakan perintah Titik Henti Debug>Toggle (F9). Titik merah muncul di margin abu-abu untuk menunjukkan titik henti (seperti yang dicatat oleh panah di bawah):

    Setting a breakpoint

  4. Mulai debugger lagi (F5) dan lihat bahwa menjalankan kode berhenti pada baris dengan titik henti tersebut. Di sini Anda dapat memeriksa tumpukan panggilan dan memeriksa variabel. Variabel yang berada dalam cakupan muncul di jendela Otomatis saat ditentukan; Anda juga dapat beralih ke tampilan Lokal di bagian bawah jendela tersebut untuk menampilkan semua variabel yang Visual Studio temukan dalam cakupan saat ini (termasuk fungsi), bahkan sebelum ditentukan:

    Breakpoint UI experience for Python

  5. Amati toolbar penelusuran kesalahan (ditunjukkan di bawah) di sepanjang bagian atas jendela Visual Studio. Toolbar ini menyediakan akses cepat ke perintah debugging yang paling umum (yang juga dapat ditemukan pada menu Debug ):

    Essential debugging toolbar buttons

    Tombol dari kiri ke kanan sebagai berikut:

    Tombol Perintah
    Lanjutkan (F5) Jalankan program hingga titik henti berikutnya atau hingga program selesai.
    Hentian Semua (Ctrl+Alt+Break) Jeda program yang berjalan lama.
    Hentikan Penelusuran Kesalahan (Shift+F5) Hentikan program di mana pun berada, dan keluar dari debugger.
    Mulai ulang (Ctrl+Shift+F5) Hentikan program di mana pun itu berada, dan memulai ulang dari awal di debugger.
    Perlihatkan Pernyataan Berikutnya (Alt+Num*) Beralih ke baris kode berikutnya untuk dijalankan. Ini berguna ketika Anda menavigasi di sekitar dalam kode Anda selama sesi penelusuran kesalahan dan ingin dengan cepat kembali ke titik di mana debugger dijeda.
    Masuk (F11) Jalankan baris kode berikutnya, masukkan ke dalam fungsi yang disebut.
    Langkah Di Atas (F10) Jalankan baris kode berikutnya, masukkan ke dalam fungsi yang disebut.
    Keluar (Shift+F11) Jalankan sisa fungsi saat ini dan jeda dalam kode panggilan.
  6. Melangkahi for pernyataan menggunakan Langkah Di Atas. Melangkah berarti bahwa debugger menjalankan baris kode saat ini, termasuk panggilan fungsi apa pun, lalu segera menjeda lagi. Perhatikan dalam kode, bagaimana variabel i sekarang ditentukan di jendela Lokal dan Otomatis.

  7. Melangkahi baris kode berikutnya, yang memanggil make_dot_string dan menjeda. Langkah di sini secara khusus berarti bahwa debugger menjalankan seluruh make_dot_string dan menjeda ketika kembali. Debugger tidak berhenti di dalam fungsi tersebut kecuali ada titik henti terpisah di sana.

  8. Lanjutkan melangkahi kode beberapa kali lagi dan amati bagaimana nilai di jendela Lokal atau Otomatis berubah.

  9. Di jendela Lokal atau Otomatis, klik dua kali di kolom Nilai untuk i variabel atau s untuk mengedit nilai. Tekan Enter atau pilih area apa pun di luar nilai tersebut untuk menerapkan perubahan apa pun.

  10. Lanjutkan melangkah melalui kode menggunakan Step Into. Langkah Ke berarti bahwa debugger masuk di dalam panggilan fungsi apa pun yang memiliki informasi penelusuran kesalahan, seperti make_dot_string. Setelah masuk make_dot_string, Anda dapat memeriksa variabel lokalnya dan menelusuri kodenya secara khusus.

  11. Lanjutkan melangkah dengan Langkah Ke dalam dan perhatikan bahwa ketika Anda mencapai akhir make_dot_string, langkah berikutnya kembali ke perulangan for dengan nilai pengembalian baru dalam s variabel. Saat Anda melangkah lagi ke print pernyataan, perhatikan bahwa Step Into on print tidak masuk ke fungsi tersebut. Ini karena print tidak ditulis dalam Python tetapi agak kode asli di dalam runtime Python.

  12. Lanjutkan menggunakan Step Into sampai Anda kembali partway kemake_dot_string. Kemudian gunakan Step Out dan perhatikan bahwa Anda kembali ke perulangan for. Dengan Step Out, debugger menjalankan sisa fungsi dan kemudian secara otomatis menjeda dalam kode panggilan. Ini berguna ketika Anda telah melangkah melalui beberapa bagian dari fungsi panjang yang ingin Anda debug. Ini akan melangkah melalui sisanya dan tidak mengatur titik henti eksplisit dalam kode panggilan.

  13. Untuk terus menjalankan program hingga titik henti berikutnya tercapai, gunakan Lanjutkan (F5). Karena Anda memiliki titik henti dalam perulangan for, Anda berhenti pada iterasi berikutnya.

  14. Telusuri ratusan iterasi perulangan bisa membosankan, jadi Visual Studio memungkinkan Anda menambahkan kondisi ke titik henti. Debugger kemudian menjeda program di titik henti hanya ketika kondisi terpenuhi. Misalnya, Anda dapat menggunakan kondisi dengan titik henti pada for pernyataan sehingga hanya dijeda saat nilai i melebihi 1600. Untuk mengatur kondisi, klik kanan titik henti merah dan pilih Kondisi (Alt+F9>C). Di popup Pengaturan Titik Henti yang muncul, masukkan i > 1600 sebagai ekspresi dan pilih Tutup. Tekan F5 untuk melanjutkan dan mengamati bahwa program menjalankan banyak iterasi sebelum jeda berikutnya.

    Setting a breakpoint condition

  15. Untuk menjalankan program agar selesai, nonaktifkan titik henti dengan mengklik kanan titik di margin dan memilih Nonaktifkan titik henti (Ctrl+F9). Lalu pilih Lanjutkan (atau tekan F5) untuk menjalankan program. Ketika program berakhir, Visual Studio menghentikan sesi penelusuran kesalahannya dan kembali ke mode pengeditannya. Anda juga dapat menghapus titik henti dengan memilih titiknya atau dengan mengklik kanan titik dan memilih Hapus titik henti. Ini juga menghapus kondisi apa pun yang telah Anda tetapkan sebelumnya.

Tip

Dalam beberapa situasi, seperti kegagalan untuk meluncurkan interpreter Python itu sendiri, jendela output mungkin hanya muncul sebentar dan kemudian ditutup secara otomatis tanpa memberi Anda kesempatan untuk melihat pesan kesalahan apa pun. Jika ini terjadi, klik kanan proyek di Penjelajah Solusi, pilih Properti, pilih tab Debug, lalu tambahkan -i ke bidang Argumen Interpreter. Argumen ini menyebabkan penerjemah masuk ke mode interaktif setelah program selesai, sehingga menjaga jendela tetap terbuka hingga Anda memasukkan Ctrl+Z>Enter untuk keluar.

Langkah selanjutnya

Mempelajari secara lebih mendalam