Saya mendapatkan kesalahan aneh ini di Eclipse ketika mencoba mengatur breakpoint.
Unable to insert breakpoint Absent Line Number Information
Saya mencentang kotak centang dari opsi Kompiler tetapi tidak berhasil.
eclipse
debugging
breakpoints
chandrajeet
sumber
sumber
Jawaban:
Saya memiliki pesan kesalahan yang sama di Eclipse 3.4.1, SUN JVM1.6.0_07 terhubung ke Tomcat 6.0 (berjalan dalam mode debug pada mesin yang berbeda, Sun JVM1.6.0_16, koneksi debug tidak bekerja dengan benar).
Window -> Preferences -> Java -> Compiler -> Generationfile Generation: "tambahkan atribut nomor baris ke file kelas yang dihasilkan" diperiksa. Saya melakukan bersih, kompilasi ulang. Saya menghapus centangnya, mengkompilasi ulang, memeriksanya, mengkompilasi ulang. Saya memastikan proyek itu menggunakan pengaturan global. Masih pesan yang sama.
Saya beralih ke semut bangunan, menggunakan
Masih, pesan yang sama.
Saya tidak tahu apa yang menyebabkan pesan ini dan mengapa pesan itu tidak pergi. Meskipun sepertinya ada hubungannya dengan sesi debug Tomcat yang sedang berjalan: ketika terputus, kompilasi memecahkan masalah. Tetapi saat menghubungkan debugger ke Tomcat atau mengatur breakpoint baru selama sesi debug yang terhubung, itu muncul lagi.
Namun, ternyata pesannya salah : Saya memang dapat men-debug dan mengatur breakpoint, baik sebelum dan selama debugging ( javap -l memang menunjukkan nomor baris, juga). Jadi abaikan saja :)
sumber
debug="true"
kejavac
tugasant
membangun script bekerja.sumber
Ini memperbaiki masalah saya:
sumber
Installed JREs
defaultJDK
bukanJRE
Untuk masalah terkait Musim Semi pertimbangkan bahwa dalam beberapa kasus ini menghasilkan kelas "tanpa nomor baris"; misalnya
@Service
kelas beranotasi tanpa antarmuka, tambahkan antarmuka dan Anda dapat men-debug. lihat di sini untuk contoh lengkap.Layanan di atas akan memiliki antarmuka yang dihasilkan oleh pegas yang menyebabkan "nomor baris hilang". Menambahkan antarmuka nyata menyelesaikan masalah generasi:
sumber
Saya punya jawaban untuk masalah ini dari sisi BlackBerry SDK: Untuk beberapa alasan, tidak peduli berapa kali saya mengubah opsi dalam kompiler, file pengaturan yang mendasarinya sebenarnya tidak berubah.
Lihat di folder .settings proyek Anda untuk file bernama org.eclipse.jdt.core.prefs .
Di sana Anda dapat mengubah pengaturan secara manual:
sunting: Lebih jauh dari ini, saya perhatikan bahwa kadang-kadang saya dapat mengabaikan peringatan yang diberikan Eclipse, dan itu masih akan berhenti di tempat yang diperlukan ... curioser dan curioser ... Saya memasukkan ini ke dalam ember hal-hal yang kita pelajari untuk berurusan dengan saat bekerja sebagai dev.
sumber
Ini bekerja untuk saya:
Window --> Preferences --> Java --> Compiler --> Classfile Generation
, semua opsi harus keTrue
.debug="true"
dalam<javac>
tugas build.xml .Debug
modesumber
Tidak tahu apakah ini masih relevan, mungkin pelaut lain akan menemukan ini berguna.
Pesan muncul ketika seseorang memiliki file kelas yang dikompilasi bendera debug dimatikan.
Dalam gerhana, Anda dapat menyalakannya dengan opsi yang disebutkan sebelumnya,
Window -> Preferences -> Java -> Compiler -> Classfile Generation: "tambahkan atribut nomor baris ke file kelas yang dihasilkan"
Tetapi jika Anda memiliki file jar, maka Anda akan mendapatkan hasil kompilasi. Tidak ada cara mudah untuk memperbaiki masalah ini.
Jika Anda memiliki akses ke sumber dan menggunakan semut untuk mendapatkan file jar, Anda dapat memodifikasi tugas semut sebagai berikut.
Selamat men-debug ..
ref: http://doc.sumy.ua/prog/Java/javanut/ch16_04.htm
sumber
Saya mencoba hampir setiap solusi di sini dan tidak berhasil. Apakah Anda mencoba mengklik "Jangan beri tahu saya lagi"? Setelah melakukannya saya memulai kembali program saya dan semuanya baik-baik saja. Eclipse menghantam breakpoint saya seolah-olah tidak ada yang salah.
Penyebab utama bagi saya adalah Eclipse sedang mencoba men-setup debugging untuk objek proxy Spring CGLIB yang dibuat secara otomatis. Kecuali jika Anda perlu men-debug sesuatu pada tingkat itu, Anda harus mengabaikan masalahnya.
sumber
Ini akan membantu jika Anda menunjukkan versi gerhana yang Anda gunakan dan teknologinya (Java JDT, atau AJDT untuk Aspect Java, atau C ++ CDT misalnya), hanya untuk memastikan.
Di sisi Java, saya kira Anda "Centang kotak centang dari opsi Kompiler" mengacu pada ini
Di bawah "
Window --> Preferences --> Java --> Compiler --> Classfile Generation
", semuaClass file
opsi generasi disetel ke True:Apakah proyek Anda hanya memeriksa pada tingkat global (Preferensi Windows) atau pada tingkat spesifik proyek?
Dan apakah Anda yakin kelas terbuka (di mana Anda mencoba mengatur breakpoint):
.java
, bukan.class
?Cobalah untuk membersihkan semuanya dan membangun kembali semua, periksa potensi konflik guci .
sumber
Saya punya masalah ini ketika mencoba untuk memulai Tomcat dalam mode debugging dari Eclipse. Saya memiliki file build ANT yang mengurus kompilasi dan penyebaran. Setelah mengatur flag debug ke true (seperti yang disebutkan dalam jawaban lain) dan menggunakan kembali aplikasi itu berfungsi dengan baik:
CATATAN: jika Anda baru saja menambahkan bendera debug dan dikompilasi ulang, Anda masih perlu memindahkan aplikasi Anda ke server karena ini adalah tempat Eclipse melakukan debug file-file kelas. Sangat jelas tetapi mudah untuk menghabiskan satu jam atau lebih menggaruk-garuk kepala Anda dan bertanya-tanya mengapa itu tidak berhasil (percayalah).
sumber
cobalah untuk mengubah yang
jre
Anda gunakan. Aturjre
dalam folderJDK
sebagai gantinya.sumber
Karena saya memiliki 6 versi Java yang diinstal, saya harus mengubah kepatuhan JDK default saya agar sesuai dengan versi Java yang ingin saya gunakan. Eclipse secara default telah menetapkan tingkat kepatuhan kompiler ke Java 1.7 ketika semuanya dibangun / dikompilasi menggunakan Java 1.6.
Jadi yang saya lakukan adalah
Sekarang Eclipse tidak mengeluh tentang "Tidak dapat menyisipkan breakpoint Absen Informasi Nomor Baris" dan breakpoint debugging benar-benar berfungsi !!!
sumber
Jika tidak ada yang berhasil, buka perspektif debug, kosongkan semua breakpoint yang ada dan kemudian atur kembali.
sumber
Ini dijelaskan secara rinci di sini:
https://github.com/spring-projects/spring-ide/issues/78
Hanya untuk referensi di masa mendatang, ini adalah bagian yang relevan dari jawaban (abaikan fakta yang merujuk pada aplikasi Boot Spring, perilaku sama untuk banyak kasus lainnya):
sumber
Situasi saya serupa:
spyTask = spy(new Task())
Task.java
)Breakpoint ini menghasilkan kesalahan yang dimaksud, setiap kali saya menjalankan
Debug As... > JUnit Test
Untuk mengatasi masalah ini, saya memindahkan Breakpoint 'up' ke dalam tes yang sebenarnya (di dalam TaskTest.java). Setelah eksekusi berhenti, saya menambahkan breakpoint kembali ke tempat saya memilikinya, awalnya (di dalam Task.java).
Saya masih mendapatkan kesalahan yang sama tetapi setelah mengklik "ok," breakpoint bekerja dengan baik.
Semoga itu bisa membantu seseorang,
-senang
sumber
Saya memiliki masalah yang sama ketika saya membuat di jetty server dan mengkompilasi file .war baru oleh ANT. Anda harus membuat versi kompiler dan pembangunan jdk / jre yang sama (misalnya, jdk 1.6v33, jdk 1.7, ....) setelah Anda harus mengatur Java Compiler seperti yang ditulis sebelumnya.
Saya melakukan segalanya dan masih tidak bekerja. Solusinya adalah menghapus file .class yang dikompilasi dan target file perang yang dihasilkan dan sekarang berfungsi :)
sumber
Mendapat pesan ini dengan Spring AOP (tampaknya berasal dari perpustakaan CGLIB). Mengklik Abaikan tampaknya berfungsi dengan baik, saya masih bisa men-debug.
sumber
Saya menemukan alasan lain untuk pesan ini. Saya sedang memprogram Scala. Solusinya adalah:
Sekarang debugging seharusnya berfungsi. Perhatikan bahwa saya telah menginstal plugin IDE Scala, opsi ini mungkin tidak tersedia jika Anda tidak memilikinya.
sumber
Hal-hal di atas tidak berhasil untuk saya. Solusi di bawah akhirnya berhasil. Konfigurasi Debug -> Classpath -> Entri Pengguna -> (Tambahkan folder src dari proyek yang ingin Anda debug.)
sumber
Saya memiliki masalah yang sama ketika men-debug PERANG (dibangun dari beberapa artefak proyek Eclipse) yang digunakan untuk Tomcat.
Saya membangun semuanya menggunakan skrip build ANT. Jika ini yang Anda lakukan, pastikan bahwa flag debug = true diset pada setiap tugas semut yang Anda punya. Ini adalah satu-satunya masalah saya - saya harap ini membantu masalah Anda!
sumber
Saya memiliki kesalahan yang sama dengan JBoss 7.1 .. Dan saya melakukan hal yang sama seperti Zefiro. Abaikan saja kesalahannya dan saya dapat menempatkan breakpoints secara normal. Dalam kasus saya, saya sedang membangun builder semut pemikiran dan ini adalah tugas javac saya:
sumber
Saya mendapat masalah yang sama, saya menghabiskan banyak waktu untuk mencari solusi tetapi solusi ini tidak berguna, Jadi saya mempelajari sendiri semua kasus, akhirnya saya menemukan masalah itu adalah konflik di antara versi JDK. Di bawah ini adalah langkah-langkah untuk menyelesaikan masalah: 1. Hapus semua versi JDK dan JRE, simpan hanya satu versi. 2. Atur sistem JAVA_HOME dan kompiler java di Eclipse adalah sama. Dalam beberapa kasus, kesalahan di atas tidak akan hilang, tetapi kami dapat berjalan pada model debug.
sumber
Setelah saya mengalami kesalahan yang sama ketika saya menggunakan junit dan Mockito, saya lupa menambahkan
@PrepareForTest
untuk kelas statis.Tambahkan kode di bawah ini untuk memperbaiki masalah saya.
Tidak yakin itu kasus yang sama.
sumber
Masalah saya adalah saya punya 2 JAR dan saya mencoba untuk menimpa satu dengan yang lain berdasarkan urutannya di
Java Build Path => Order & Export
tab di Eclipse, karena satu untuk debugging dan yang lainnya tidak (debugging JAR menjadi yang pertama dalam urutan). Ketika saya melakukannya dengan cara ini, saya harus melampirkan sumber secara manual.Saya mencoba menghapus JAR non-debug dan menempatkan JAR debug di direktori \ WEB-INF \ lib \, membersihkan, membuat, dll., Dan berhasil. Kali ini (setelah menghapus sumber terlampir), secara otomatis akan membiarkan saya menavigasi kode debug, tanpa harus melampirkan sumber apa pun secara manual. Breakpoints dan debug juga berhasil.
Jika ada yang masih mengalami masalah, saya juga mencoba semua solusi khusus yang disebutkan dalam jawaban lain:
Add line number attributes...
org.eclipse.jdt.core.prefs
sebagaimana disebutkan dalam jawaban lain: https://stackoverflow.com/a/31588700/1599699Saya juga melakukan yang biasa mematikan server (dan memastikan java.exe benar-benar ditutup ...), menghapus direktori \ build \ di kedua proyek, memulai kembali Eclipse dengan parameter -clean, membuat ulang JAR debug, menyegarkan, membersihkan, dan membangun proyek dengan JAR debug di dalamnya, mulai server dalam mode debug, penerbitan / pembersihan, dan breakpointing.
sumber
Saya melakukan semua yang tercantum di atas saat mengkompilasi / membangun stoples - masih memiliki masalah yang sama.
Akhirnya, perubahan jvmarg tercantum di bawah saat memulai server adalah yang akhirnya berhasil bagi saya:
1) Dihapus / Berkomentar sekelompok jvm args yang berkaitan dengan javaagent dan bootclasspath.
2) Menghidupkan / membatalkan komentar pada baris berikut:
Kemudian ketika saya memulai server, saya dapat mencapai breakpoints saya. Saya menduga bahwa javaagent itu entah bagaimana mengganggu kemampuan Eclipse untuk mendeteksi nomor baris.
sumber
Periksa / lakukan yang berikut ini:
1) Di bawah "Window -> Preferences -> Java -> Compiler -> Classfile Generation", semua opsi harus True:
2) Dalam folder .settings proyek Anda, cari file bernama org.eclipse.jdt.core.prefs. Verifikasi atau setel org.eclipse.jdt.core.compiler.debug.lineNumber = hasilkan
3) Jika jendela kesalahan masih muncul, klik kotak centang untuk tidak menampilkan pesan kesalahan.
4) Bersihkan dan bangun proyek. Mulai debugging.
Biasanya jendela kesalahan tidak ditampilkan lagi dan informasi debugging ditampilkan dengan benar.
sumber
Saya mengalami masalah ini juga. Saya menggunakan skrip pembuatan semut. Saya sedang mengerjakan aplikasi warisan jadi saya menggunakan versi jdk 1.4.2. Ini digunakan untuk bekerja jadi saya mulai mencari-cari. Saya perhatikan bahwa di bawah konfigurasi Debug pada tab JRE versi Java telah diatur ke 1.7. Setelah saya mengubahnya kembali ke 1.4 berhasil.
Saya harap ini membantu.
sumber
Saya mencoba untuk men-debug manajer logging dan perlu mengubah jre ke jdk dan kemudian untuk memilih jdk ini di tab "utama", "Java Runtime Environment" | "runtime JRE" dari konfigurasi debug maka semuanya baik-baik saja.
sumber
Saya melihat masalah ini ketika saya menjelaskan kelas dengan @ManagedBean (javax.annotation.ManagedBean). Pesan peringatan muncul ketika menjalankan aplikasi yang baru dipatuhi di JBoss EAP 6.2.0. Mengabaikannya dan tetap berlari tidak membantu - breakpoint tidak pernah tercapai.
Saya memanggil kacang itu menggunakan EL di halaman JSF. Sekarang ... mungkin saja @ManagedBean tidak baik untuk itu (saya baru menggunakan CDI). Ketika saya mengubah anotasi ke @Model, kacang saya dieksekusi tetapi peringatan breakpoint juga hilang dan saya mencapai breakpoint seperti yang diharapkan.
Singkatnya, sepertinya penjelasan @ManagedBean mengacaukan nomor baris, terlepas dari apakah itu adalah anotasi yang salah untuk digunakan.
sumber
Pastikan proyek di mana kelas utama runtime adalah, adalah proyek yang sama di mana kelas Anda memiliki breakpoints . Jika tidak, pastikan kedua proyek berada di classpath dari konfigurasi yang dijalankan, dan muncul sebelum folder guci dan kelas.
sumber