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 bisa mengubah pernyataan berikutnya yang akan dijalankan dengan memindahkan panah ini. Anda dapat melewati kode atau kembali ke baris sebelumnya.

Animasi yang memperlihatkan cara memindahkan penunjuk.

Jika Anda ingin mengubah perintah berikutnya yang akan dieksekusi, debugger harus dalam mode penghentian. 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.

Program counter langsung melompat 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 lingkup lain biasanya menyebabkan kerusakan stack panggilan, yang dapat menyebabkan kesalahan runtime atau pengecualian. Jika Anda mencoba memindahkan pernyataan berikutnya ke cakupan lain, debugger memberi Anda peringatan dan kesempatan untuk membatalkan operasi.
  • Di 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 ketika eksekusi mencapai akhir metode.
  • Saat Edit dan Lanjutkan diaktifkan, Atur Pernyataan Berikutnya gagal jika Anda telah melakukan pengeditan yang Edit dan Lanjutkan tidak dapat segera memetakan ulang. Situasi ini dapat terjadi, misalnya, jika Anda telah mengedit kode dalam blok 'catch'. 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 oleh Just-In-Time debugging.
    • Proses pembongkaran tumpukan panggilan sedang dilakukan.
    • Pengecualian System.StackOverflowException atau System.Threading.ThreadAbortException telah dilemparkan.