Bagaimana cara menggunakan breakpoint bersyarat di Eclipse?


117

Saya ingin tahu bagaimana menempatkan breakpoint bersyarat di Eclipse. Saya memiliki kode seperti:

public static void doForAllTabs(String[] tablist){
    for(int i = 0; i<tablist.length;i++){
-->        doIt(tablist[i]);
    }
}

Sekarang saya ingin meletakkan breakpoint pada garis dengan panah tetapi ingin memicu hanya jika:

tablist[i].equalsIgnoreCase("LEADDELEGATES");

Jawaban:


179

Letakkan breakpoint Anda. Klik kanan gambar breakpoint pada margin dan pilih Breakpoint Properties :

masukkan deskripsi gambar di sini

Konfigurasikan kondisi sesuai keinginan Anda:

masukkan deskripsi gambar di sini


9
Eclipse terbaru menyertakan opsi ini secara langsung di Breakpoints View juga.
Michael Brewer-Davis

1
Terima kasih Mate! menghemat banyak waktu saya! :)
MozenRath

8
Wow! Saya telah menggunakan: if(condition){System.out.println("debug");}dan melanggar pernyataan cetak selama bertahun-tahun.
Cruncher

5
Jangan lupa untuk MENGHAPUS ;di bagian akhir - saya mendapat kesalahan saat memasukkannya.
modulitos

Terima kasih banyak! Ini sangat membantu.
hfontanez

11

Buat breakpoint normal di doIt(tablist[i]);telepon

Klik kanan -> Properties

Centang 'Conditional'

Memasukkan tablist[i].equalsIgnoreCase("LEADDELEGATES")


Apakah Anda tidak membutuhkan titik koma di akhir ekspresi? Saya hanya bisa mendapatkan breakpoint bersyarat untuk bekerja jika saya menambahkan titik koma (dan bahkan tidak terlalu sering).
Cajunluke

3
@CajunLuke Sama di sini. Saya baru saja mencobanya dengan final T[](tipe non-generik) dan mendapatkan Conditional breakpoint has compilation error(s). Anehnya, kondisi saya bonds==nulldan Alasan di dialog error adalah invalid AssignmentOperator. sigh Kadang-kadang Eclipse berperilaku lebih seperti manusia berusia 12 tahun daripada perangkat lunak berusia 12 tahun.
KomodoDave

3

Dari Eclipsepedia tentang cara menyetel breakpoint bersyarat:

Pertama, tetapkan breakpoint di lokasi tertentu. Kemudian, gunakan menu konteks pada breakpoint di margin editor kiri atau dalam tampilan Breakpoints dalam perspektif Debug, dan pilih properti breakpoint. Di kotak dialog, centang Aktifkan Kondisi, dan masukkan kondisi Java arbitrer, seperti list.size()==0. Sekarang, setiap kali breakpoint tercapai, ekspresi dievaluasi dalam konteks eksekusi breakpoint, dan breakpoint diabaikan atau dihormati, bergantung pada hasil ekspresi.

Ketentuan juga dapat dinyatakan dalam atribut breakpoint lainnya, seperti jumlah klik.


Tautan Anda tidak ?dikodekan. Coba ini .
KomodoDave

Terima kasih, hargai itu

2

1. Buat kelas

public class Test {

 public static void main(String[] args) {
    // TODO Auto-generated method stub
     String s[] = {"app","amm","abb","akk","all"};
     doForAllTabs(s);

 }
 public static void doForAllTabs(String[] tablist){
     for(int i = 0; i<tablist.length;i++){
         System.out.println(tablist[i]);
    }
  }
}

2. Klik kanan di sisi kiri System.out.println (tablist [i]); di Eclipse -> pilih Toggle Breakpoint

3. Klik kanan pada toggle point -> pilih properti Breakpoint

4. Centang Kotak Centang Bersyarat -> tulis daftar tab [i] .equalsIgnoreCase ("amm") di kolom teks -> Klik OK

5. Klik kanan pada class -> Debug As -> Java Application

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.