Bagikan melalui


Pindahkan penunjuk eksekusi untuk mengubah alur eksekusi di debugger

Saat men-debug, Anda dapat memindahkan penunjuk eksekusi secara manual untuk mengubah pernyataan berikutnya yang akan berjalan berikutnya. Memindahkan pointer berguna untuk situasi seperti melompati kode yang berisi bug yang diketahui, dan merupakan fitur yang lebih canggih dari debugger.

Mengubah alur eksekusi

Saat debugger dijeda, panah kuning di margin kode sumber atau jendela Pembongkaran menandai lokasi pernyataan yang akan berjalan berikutnya. Anda dapat mengubah pernyataan berikutnya yang akan dijalankan dengan memindahkan panah ini. Anda dapat melewati kode atau kembali ke baris sebelumnya.

Animation that shows how to move the pointer.

Animation that shows how to move the pointer.

Jika Anda ingin mengubah pernyataan berikutnya yang akan berjalan, debugger harus dalam mode jeda. Di kode sumber atau jendela Pembongkaran, seret panah kuning ke garis lain, atau klik kanan garis yang ingin Anda jalankan berikutnya dan pilih Atur Pernyataan Berikutnya.

Penghitung program melompat langsung ke lokasi baru. Instruksi antara titik eksekusi lama dan baru tidak dijalankan. Tetapi, jika Anda memindahkan titik eksekusi mundur, instruksi intervensi tidak dibatalkan.

Perhatian

  • Memindahkan pernyataan berikutnya ke fungsi atau cakupan lain biasanya menyebabkan kerusakan tumpukan panggilan, yang menyebabkan kesalahan atau pengecualian runtime. Jika Anda mencoba memindahkan pernyataan berikutnya ke cakupan lain, debugger memberi Anda peringatan dan kesempatan untuk membatalkan operasi.
  • Dalam Visual Basic, Anda tidak dapat memindahkan pernyataan berikutnya ke cakupan atau fungsi lain.
  • Di C++ asli, jika Anda mengaktifkan pemeriksaan runtime, mengatur pernyataan berikutnya dapat menyebabkan pengecualian saat eksekusi mencapai akhir metode.
  • Saat Edit dan Lanjutkan diaktifkan, Atur Pernyataan Berikutnya akan gagal jika Anda telah melakukan pengeditan yang tidak dapat segera dipetakan ulang oleh Edit dan Lanjutkan. Situasi ini dapat terjadi, misalnya, jika Anda telah mengedit kode dalam blok tangkapan. Ketika ini terjadi, pesan kesalahan memberi tahu Anda bahwa operasi tidak didukung.
  • Dalam kode terkelola, Anda tidak dapat memindahkan pernyataan berikutnya jika:
    • Pernyataan berikutnya berada dalam metode yang berbeda dari pernyataan saat ini.
    • Penelusuran kesalahan dimulai dengan penelusuran kesalahan Just-In-Time.
    • Pelepasan tumpukan panggilan sedang berlangsung.
    • Pengecualian System.StackOverflowException atau System.Threading.ThreadAbortException telah dilemparkan.