วิธีใช้เบรกพอยต์แบบมีเงื่อนไขใน Eclipse


117

ฉันต้องการทราบวิธีการวางเบรกพอยต์แบบมีเงื่อนไขใน Eclipse ฉันมีรหัสเช่น:

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

ตอนนี้ฉันต้องการวางเบรกพอยต์บนเส้นด้วยลูกศร แต่ต้องการให้ทริกเกอร์เฉพาะเมื่อ:

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

คำตอบ:


179

ใส่เบรกพอยต์ของคุณ คลิกขวาที่รูปภาพเบรกพอยต์บนระยะขอบแล้วเลือกคุณสมบัติเบรกพอยต์:

ใส่คำอธิบายภาพที่นี่

กำหนดเงื่อนไขตามที่เห็นสมควร:

ใส่คำอธิบายภาพที่นี่


9
Eclipse ล่าสุดมีตัวเลือกเหล่านี้โดยตรงในมุมมองเบรกพอยต์เช่นกัน
Michael Brewer-Davis

1
ขอบคุณ Mate! ประหยัดเวลาของฉันได้มาก! :)
MozenRath

8
ว้าว! ฉันใช้: if(condition){System.out.println("debug");}และทำลายข้อความพิมพ์มาหลายปีแล้ว
Cruncher

5
อย่าลืม OMIT ;ในตอนท้าย - ฉันได้รับข้อผิดพลาดเมื่อรวมเข้าด้วยกัน
modulitos

ขอบคุณมาก! สิ่งนี้มีประโยชน์มาก
hfontanez

11

สร้างเบรกพอยต์ตามปกติในdoIt(tablist[i]);บรรทัด

คลิกขวา -> คุณสมบัติ

ตรวจสอบ 'ตามเงื่อนไข'

เข้าสู่ tablist[i].equalsIgnoreCase("LEADDELEGATES")


คุณไม่ต้องการเครื่องหมายอัฒภาคในตอนท้ายของนิพจน์หรือไม่? ฉันสามารถทำให้เบรกพอยต์แบบมีเงื่อนไขทำงานได้ก็ต่อเมื่อฉันเพิ่มอัฒภาค (และไม่บ่อยนัก)
Cajunluke

3
@CajunLuke เหมือนกันที่นี่. ฉันก็พยายามด้วยfinal T[](ไม่ใช่ประเภททั่วไป) Conditional breakpoint has compilation error(s)และได้รับ ตลกขบขันสภาพของฉันเป็นและเหตุผลในการโต้ตอบข้อผิดพลาดคือbonds==null ถอนหายใจบางครั้งทำให้เกิดคราสทำงานซอฟต์แวร์เก่าเหมือนมนุษย์อายุ 12 ปีมากกว่า 12 ปี invalid AssignmentOperator
KomodoDave

3

จากEclipsepediaเกี่ยวกับวิธีตั้งค่าเบรกพอยต์ตามเงื่อนไข:

ขั้นแรกกำหนดจุดพักตามตำแหน่งที่กำหนด จากนั้นใช้เมนูบริบทบนเบรกพอยต์ในขอบด้านซ้ายของตัวแก้ไขหรือในมุมมองเบรกพอยต์ในมุมมองการดีบักและเลือกคุณสมบัติของเบรกพอยต์ ในกล่องโต้ตอบให้เลือกเปิดใช้เงื่อนไขและป้อนเงื่อนไข Java ที่กำหนดเองเช่นlist.size()==0. ตอนนี้ทุกครั้งที่ถึงจุดพักนิพจน์จะได้รับการประเมินในบริบทของการดำเนินการเบรกพอยต์และเบรกพอยต์จะถูกละเว้นหรือให้เกียรติขึ้นอยู่กับผลลัพธ์ของนิพจน์

เงื่อนไขยังสามารถแสดงในรูปของแอตทริบิวต์เบรกพอยต์อื่น ๆ เช่นจำนวน Hit


ลิงก์ของคุณไม่ได้รับการ?เข้ารหัส ลองนี้
KomodoDave

ขอบคุณขอบคุณมาก

2

1. สร้างชั้นเรียน

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. คลิกขวาที่ด้านซ้ายของ System.out.println (tablist [i]); ใน Eclipse ->เลือกToggle Breakpoint

3. คลิกขวาที่ จุดสลับ -> เลือก คุณสมบัติเบรกพอยต์

4. ตรวจสอบ เงื่อนไขการ ตรวจสอบกล่อง -> เขียน tablist [ผม] .equalsIgnoreCase ( "amm") ในฟิลด์ข้อความ -> คลิกที่ ตกลง

5. คลิกขวาที่ class -> Debug As -> Java Application

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.