bytekit-core/src/main/java/com/alibaba/bytekit/utils/AsmUtils.java (4 lines): - line 536: // TODO 检查是否有重复? - line 544: // TODO 是否真的 unique 了? - line 694: // TODO 支持原始类型,数组等 - line 699: // TODO 支持原始类型,数组等 bytekit-core/src/main/java/com/alibaba/bytekit/asm/MethodProcessor.java (3 lines): - line 92: // TODO 这里应该直接从 InsnList 里来取?因为插入代码之后,这个会改变的。 - line 93: // TODO 这个没有被使用到,是不是没用的?? - line 664: * TODO 可以考虑实现修改值的功能,原理是传入的 args实际转化为一个stack上的slot,只要在inline之后,把 stack上面的对应的slot保存到想要保存的位置就可以了。 bytekit-core/src/main/java/com/alibaba/bytekit/asm/binding/ArrayBinding.java (3 lines): - line 11: * TODO 这个判断是否要从stack上取数据,要看 其它的binding是否需要。 是否 optional,这个应该是由 ArrayBinding 整体设定?? - line 17: // TODO 数组的 type是什么? - line 45: // TODO Auto-generated method stub bytekit-core/src/main/java/com/alibaba/bytekit/asm/meta/ClassMeta.java (3 lines): - line 73: // TODO 打印error? - line 133: // TODO 每次都要向上多次查询,需要缓存一次结果不? - line 182: // TODO 是否要比较 classLoader? bytekit-core/src/main/java/com/alibaba/bytekit/asm/ClassMetaClassWriter.java (2 lines): - line 23: // TODO 对 null loader的处理是否准确 - line 65: // TODO 是直接返回 "java/lang/Object",还是尝试用指定 classLoader 查找 bytekit-core/src/main/java/com/alibaba/bytekit/asm/interceptor/annotation/ExceptionHandlerUtils.java (2 lines): - line 21: // TODO 要解析 errorHander Class里的内容 - line 57: // TODO 可能要copy一下,保证可以修改成功 bytekit-core/src/main/java/com/alibaba/bytekit/asm/interceptor/InterceptorProcessor.java (2 lines): - line 106: // TODO 要检查 binding 和 回调的函数的参数类型是否一致。回调函数的类型可以是 Object,或者super。但是不允许一些明显的类型问题,比如array转到int - line 114: // TODO 这里应该有 type 的问题?需要检查是否要 box bytekit-core/src/main/java/com/alibaba/bytekit/asm/inst/impl/InstrumentImpl.java (2 lines): - line 57: // TODO 原来的函数没有返回值,这里要把 POP去掉。有没有可能是 POP2 ? - line 60: // TODO 原来函数没有返回值,这里有没有可能要赋值??是否要 push null? bytekit-core/src/main/java/com/alibaba/bytekit/asm/instrument/InstrumentTransformer.java (2 lines): - line 87: // TODO 有一些特别注解标记的函数,并且在原来类里没找到对应的,则复制函数过去 - line 98: // TODO 支持 bootstrap classloader? bytekit-core/src/main/java/com/alibaba/bytekit/asm/binding/ThrowableBinding.java (2 lines): - line 7: * TODO 要检查 location 是否是合法的 - line 20: // TODO 这里从 StackSaver 里取是否合理? bytekit-core/src/main/java/com/alibaba/bytekit/asm/binding/MethodDeclarationBinding.java (1 line): - line 9: * TODO 提供一个完整的 method 的string,包含类名,并不是desc?用户可以自己提取descs method的定义,前面是 public bytekit-core/src/main/java/com/alibaba/bytekit/asm/instrument/InstrumentTemplate.java (1 line): - line 180: // TODO 处理 @NewField bytekit-core/src/main/java/com/alibaba/bytekit/asm/matcher/SimpleInterfaceMatcher.java (1 line): - line 50: * 在retransform 时,类已经加载好,可以直接判断 TODO 哪种判断方式更快? bytekit-core/src/main/java/com/alibaba/bytekit/asm/binding/MethodInfoBinding.java (1 line): - line 12: * TODO 是否要有 line number ? bytekit-core/src/main/java/com/alibaba/bytekit/asm/location/Location.java (1 line): - line 377: // // TODO 这里直接 unbox 就可以了??unbox里带有 check cast bytekit-core/src/main/java/com/alibaba/bytekit/asm/binding/LocalVarsBinding.java (1 line): - line 15: * TODO 增加一个配置,是否包含 method args bytekit-core/src/main/java/com/alibaba/bytekit/utils/Decompiler.java (1 line): - line 32: * TODO com.taobao.arthas.core.util.Decompiler bytekit-core/src/main/java/com/alibaba/bytekit/asm/binding/InvokeArgsBinding.java (1 line): - line 13: * TODO ,当 static 函数时,在数组前,传一个null进去? 不然,不好区分是否 static 函数调用?? bytekit-core/src/main/java/com/alibaba/bytekit/asm/location/VariableAccessLocationMatcher.java (1 line): - line 30: // TODO Auto-generated method stub