解决eclipse偶尔无视breakpoint的行为

一般是如果你使用了T[]这样的参数列表,也就是generic array作为参数,你就算给函数打了断点,有时也会被eclipse无视

 

比如如下代码,你在调试main的时候,eclipse就会把doPartition(T[],int,int)上的断点无视了,也就是说,如果你在main中按F6(step over),是不会进入doPartition(T[],int,int),除非你按F5(step into)强行进入下一层

 

但是如果你把doPartition(T[],int,int)的断点不要打在函数头上,在函数体的第一句打上断点,就可以解决这个问题(也就是说把断点打在int i = 0那一行)

 

无解,遇到这种情况只能把函数体内的每一个句子都打上断点,否则没法调试,上面说的只给第一句打上断点确实能够强迫eclipse进入函数调试,但是函数中如果有子循环,就不会单步了,子循环会一下子执行完毕,所以,感觉这个是eclipse的一个bug,目前惟一的解决方案就是给函数中的每个句子都打上断点,用鼠标双击代码窗口的左侧就可以勾选/取消断点。

package test;

import algorithms.Xxx;

public class TestPartition {
    public static void main(String[] args) {   // 断点打在这一行
        int pivot = 0;
        String[] ss = new String[]{"a","b"};
        pivot++;
        pivot++;
        Xxx.doPartition(ss, 1, 2); 
        pivot++;
        pivot++;
        Xxx.doPartition(1, 2);
        pivot++;
        pivot++;
    }

}
package algorithms;

public class Xxx {
    
    public static <T extends Comparable<T>> int doPartition(T[] arr, int m, int n) {  // 断点打在这一行 
        int i = 0;
        ++i;
        ++i;
        ++i;
        return i;
    }
    
    public static <T extends Comparable<T>> int doPartition(int m, int n) {  // 断点打在这一行
        int i = 0;
        ++i;
        ++i;
        ++i;
        return i;
    }
    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值