Anda dapat menggunakan perintah drop to frame Eclipse untuk memasukkan kembali metode saat ini dari atas. Tapi itu tidak akan membatalkan perubahan kondisi apa pun yang telah terjadi, jadi itu mungkin tidak bekerja tergantung pada jenis metode yang Anda gunakan.
Alat lain yang sangat keren yang benar-benar membuat Anda mundur dan maju dalam waktu adalah Debugger Mahatahu . Ini bekerja dengan menginstruksikan kelas ketika mereka dimuat di classloader, sehingga dapat merekam semua yang dilakukan kode Anda. Ia dapat melakukan hal-hal yang sangat keren, seperti menjawab "kapan, di mana, dan mengapa bidang ini ditetapkan nilainya saat ini?". UI agak kikuk, dan bisa sulit menangani basis kode besar, tetapi untuk beberapa kasus itu benar-benar dapat menghemat banyak waktu.
Pembaruan : Chronon menyediakan produk komersial yang dideskripsikan sebagai "DVR untuk Java", yang tampaknya melakukan banyak hal yang sama dengan ODB.
Di luar apa yang telah disebutkan dalam jawaban sebelumnya - yaitu fitur drop to frame Eclipse dalam tampilan debug , yang memulai kembali debugging sebelumnya dalam bingkai stack (tetapi tidak mengembalikan data global / statis) dan debugger Omniscient , yang sedikit mentah dan tidak begitu banyak berkembang - ada beberapa alat berbasis Eclipse yang dapat digunakan untuk "kembali" dalam waktu (lari):
JIVE memperluas Eclipse Java debugger dengan kemampuan untuk merekam status program. Perspektif JIVE menyediakan beberapa diagram UML bermanfaat yang diperbarui saat program sedang berjalan. Diagram ini memberikan gambaran tentang keadaan aplikasi (diagram objek) dan jejak stack (diagram urutan). Anda dapat meminta jejak yang dihafal dan melangkah mundur dan maju dalam waktu dan melihat diagram yang sesuai.
Penyelam hanya mencatat panggilan metode dan tidak benar-benar merekam status program seperti JIVE. Setiap acara metode panggilan disimpan untuk pengambilan dan analisis nanti. Ini memperluas konfigurasi Java Run dan Debug terutama untuk menentukan filter. Jejak dapat dijeda / dilanjutkan / disaring saat runtime. Setelah direkam, perspektif Penyelam dapat menampilkannya dalam diagram urutan interaktif.
JIVE dan Diver adalah proyek open source yang dikeluarkan dari penelitian akademik. Per November 2012 kedua proyek aktif.
Chronon adalah produk komersial, tetapi mereka memiliki lisensi gratis untuk siswa dan proyek sumber terbuka. Dari apa yang diklaim di situs web mereka, mungkin ini adalah perekam paling komprehensif karena mampu memutar ulang rekaman sejarah, melangkah bolak-balik, memungkinkan seperti yang mereka katakan waktu bepergian debugging. Eclipse juga tidak diperlukan untuk merekam.
Semua plugin ini cukup serakah dalam sumber daya sehingga yang terbaik untuk memiliki mesin spec yang baik dan menggunakan fitur filternya. Persyaratan yang pasti untuk menjalankannya dengan sukses adalah memperluas ruang heap di eclipse.ini .
Dalam kasus saya, saya sudah mencoba menggunakan JIVE dan Diver untuk men-debug program parsing XML tetapi selalu berakhir dengan pembekuan gerhana karena kurangnya sumber daya. Penyelam mungkin sulit dijalankan di linux 64bit , ini berfungsi di ubuntu 32bit dan mungkin distro 32bit lainnya menggunakan tips ini . Penyelam bekerja pada Windows, lebih baik lagi pada Windows 64bit + 64bit JVM jika tidak, Anda akan dibatasi untuk ruang tumpukan maksimum 1,3-1,6Gb pada windows 32bit . JIVE berfungsi dengan baik di linux 64bit saya, dan sepertinya berfungsi dengan baik pada platform lain.
sumber
Ya , Eclipse CDT memiliki dukungan fitur debugger historis.
Buka Konfigurasi Debug -> Debugger -> Aktifkan Reverse Debugging saat startup .
Daripada Anda dapat menekan
shift+F5
ataushift+F6
untuk mundur sepertiF5
atauF6
untuk maju.sumber
Saya bias, tetapi Chronon melakukan apa yang Anda cari.
Drop to Frame tidak persis mundur, karena jika metode telah mengubah apa pun di heap itu tidak akan dikembalikan.
sumber
Saya mencari fitur ini di gerhana juga. Saya tahu studio visual dapat melakukannya. Sebenarnya Anda dapat menyeret penanda garis saat ini dan memasukkan kode kembali ke mana saja. Saya tidak yakin apakah perubahan variabel dapat dibatalkan. Tapi itu tetap sangat berguna meski begitu dan menghemat banyak waktu. Saya sudah menunggu ini dalam gerhana yang sangat lama.
sumber
Pertanyaannya tidak menentukan bahasa Eclipse, dan banyak dari jawabannya mengasumsikan Java.
Jika menggunakan C ++ dan GCC dengan debugger GDB, Eclipse memiliki
Run->Move to Line
fungsi dan fungsi seperti Visual Studio Set Next Statement . Dalam hal ini, Eclipse menggunakan kemampuan yang ada di GDB.Jika menggunakan Java, saya tidak mengetahui cara melakukannya dengan Eclipse atau Netbeans, meskipun jawaban lain menyarankan plugin. Eclipse memang memiliki perintah "drop to frame" yang berfungsi untuk Java dalam versi saya (Juno SR1). Jika saya memodifikasi dan menyimpan kode dalam suatu fungsi dalam mode debug, garis eksekusi secara otomatis pindah ke bagian atas fungsi saat ini dan saya dapat melanjutkan dari sana. Tidak sama dengan menentukan garis, tetapi itu adalah sesuatu.
sumber