如何以纯文本方式简单快速记录java代码的调用过程
示例
以下面这个类为例:
public class Test {
void main() {
System.out.println("main");
test1();
test2();
}
void test1() {
}
void test2() {
test3();
test4();
test5();
test8();
}
void test3() {
System.out.println("test3");
}
void test4() {
}
void test5() {
test6();
}
void test6() {
test7();
}
void test7() {
}
void test8() {
}
}
main()
的调用过程记录为:
Test#main //进入Test.main方法
test1(); //执行Test.main里代码
test2(); //执行Test.main里代码
Test#test2 //进入Test.test2方法
test3(); //执行Test.test2里的方法
Test#test3 //进入Test.test3方法
System.out.println("test3"); //执行Test.test3里的方法
test4(); //缩进结束, 表示从Test.test3返回; test3()和test4()在同一个方法里, 缩进这两者之间的代码;
test5();
Test#test5 //进入Test.test5, 下一行忽略了test5里的方法体
Test#test6 //进入Test.test6
Test#test7 //进入Test.test7
Test#test8 //进入Test.test8, test5()和test8()在同一个方法里, 缩进这两者之间的代码;
提示: idea里可以在代码上右键 -> copy/paste special -> copy reference(ctrl+shift+alt+c)复制方法的引用名; 结合ahk脚本可以截断包名, 只留下类名;
规则说明:
- 从上到下表示代码的执行过程;
- 如果某行包含
#
号, 表示进入了某个方法,#
前是类名,#
后是方法名 - 如果不包含
#
号, 表示是方法体里的代码, 有时候可以省略; - 如果从某个方法返回, 给返回的方法增加缩进; 缩进同级代码之间的代码(或者说: 同一个方法体里的代码保持相同的缩进);
哪位大佬有好的方式欢迎指教.