Saya menggunakan modul pdb untuk men-debug program. Saya ingin memahami bagaimana saya dapat keluar dari pdb dan membiarkan program terus berjalan hingga selesai. Program ini mahal secara komputasi untuk dijalankan, jadi saya tidak ingin keluar tanpa skrip mencoba menyelesaikannya. continue
sepertinya tidak berhasil. Bagaimana cara keluar dari pdb dan melanjutkan program saya?
111
continue
keluar dari loop,return
keluar metode / fungsicontinue
, perintah pdb. Bukan pernyataan Python.continue
harus "Lanjutkan eksekusi, hanya berhenti ketika breakpoint ditemukan", menurut dokumen. Apakah Anda memiliki set breakpoint yang mulai terpukul?pdb.set_trace()
dalam kode sumber?Jawaban:
continue
harus "Lanjutkan eksekusi, hanya berhenti ketika breakpoint ditemukan", jadi Anda telah menetapkan breakpoint di suatu tempat. Untuk menghapus breakpoint (jika Anda memasukkannya secara manual):Atau, jika Anda menggunakan
pdb.set_trace()
, Anda dapat mencoba ini (meskipun jika Anda menggunakan pdb dengan cara yang lebih mewah, ini dapat merusak ...)sumber
set_trace = lambda: None
:)set_trace = lambda: None
. Python org harus menambahkan perintah yang memungkinkan Anda keluar dari pdb.Sederhana Ctrl - Dakan keluar dari pdb. Jika Anda ingin melanjutkan daripada melanggar, cukup tekan calih-
continue
alih seluruh perintahsumber
exit
The jawaban dari @voithos benar, jadi saya hanya akan menambahkan salah satu alternatif dalam kasus di mana Anda menggunakan
set_trace
. Ya,pdb.set_trace = lambda: None
peretasan berfungsi dengan baik, tetapi tidak jika Anda memiliki breakpoint lain yang disetel dan ingin mengaktifkannya kembali nanti. Bagi saya ini menunjukkan fakta yang sayangnyapdb
kehilangan banyak fungsi (bahkan hal-hal dasar seperti daftar tampilan), dan ini adalah kasus lain.Kabar baiknya adalah itu
pdb++
adalah pengganti drop-in yang baguspdb
, dan salah satu hal yang diselesaikannya adalah masalah penonaktifanset_trace
. Jadi, Anda cukup melakukan:dan kemudian saat
(Pdb++)
diminta, ketik:Jika Anda ingin mengaktifkan kembali nanti, tidak mengherankan ini berfungsi:
Mudah! Dan Anda akan mendapatkan banyak barang berguna lainnya selain itu.
sumber
Jika Anda benar-benar ingin keluar dari debugger maka Anda perlu menjalankan sesuatu seperti WinPdb yang memungkinkan Anda melepaskan proses dan kemudian keluar dari debugger, (NB Ini multi-platform).
Jika Anda ingin melanjutkan debugging tetapi tidak lagi berhenti pada breakpoint tertentu, maka Anda perlu:
cl bp_number
atauclear file:line
untuk secara permanen menghapus breakpoint ataudisable pb_number
untuk menonaktifkannya tetapi dapat mengaktifkannya kembali.continue
dan program Anda berjalan hingga breakpoint berbeda berikutnya tercapai.Untuk detail lebih lanjut di atas lihat manual .
sumber
temukan cara baru untuk keluar dari pdb tanpa menginstal apa pun: - ketika program mulai dijalankan, tekan ctrl + c, lalu alihkan jendela ke jendela lain (sembarang jendela), maka shell asli dengan pdb yang sedang berjalan akan menunjukkan sesuatu seperti: (pdb) ..... - beralih kembali ke pdb, lalu tekan Enter, sekarang Anda sudah siap, shell perintah pdb muncul kembali
sumber