在开发过程中,特别是在代码量很大的情况下(比如系统开发),调试会比较困难。
所以寻找和总结调试技巧很关键。下面共享一个我在开发中经常使用的方法。
情形
想知道某个方法被系统的 framwork 层哪些方法调用过,那麽如何处理?
解决
使用下面封装的方法:
public void findCaller() {
final Throwable mThrowable = new Throwable();
final StackTraceElement[] elements = mThrowable.getStackTrace();
final int len = elements.length;
StackTraceElement item = null;
for (int i = 0; i < len; i++) {
item = elements[i];
System.out.println("Position: " +
item.getClassName() + "." + item.getMethodName()
+ " ---" + item.getLineNumber() + " line");
}
}
在需要调试的方法中,调用 findCaller()就可以看出相互之间的调用关系!