在开发过程中,特别是在代码量很大的情况下(比如系统开发),调试会比较困难。
所以寻找和总结调试技巧很关键。下面共享一个我在开发中经常使用的方法。
情形
想知道某个方法被系统的 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()就可以看出相互之间的调用关系!
本文介绍了一种实用的调试技巧,通过自定义方法findCaller()来追踪代码中特定方法的调用栈。该方法利用Throwable获取调用堆栈信息,并打印出每个调用者的位置、类名、方法名及行号,便于开发者了解方法间的调用关系。
816

被折叠的 条评论
为什么被折叠?



