hengyunabc
hengyunabc
The same problem.
👍 Supported in arthas: https://arthas.aliyun.com/doc/en/jad  But the output seems not to be sorted by line numbers: ```java [arthas@61148]$ jad java.lang.String '' ClassLoader: Location: public String(byte[] byArray) { /*556*/ this(byArray,...
具体是什么场景?希望在应用代码里 destroy?
@wanghuigithub 欢迎分享你们的经验,还可以投稿到这里: https://github.com/alibaba/arthas/issues/1079
这个 pr貌似和 1544 issue没关系啊
这个有点诡异,看起来是初始化`com.taobao.arthas.common.AnsiLog`时出错了。 检查下应用的标准输出,看下有没有具体的异常信息。
@xubin2016 试下可以debug不? 参考: https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md#debug-1
这个想法是很好的,但是会带来复杂度。一个简单的 html + vue页面,所有的用户都能修改,也非常方便调试。还需要再评估下。
首先这个PR的工作挺好的。从技术上来说,支持行号的确不是问题。主要有几个考虑: 1. 每一行都增强,这个生成的字节码会极速膨胀,很可能会超出jvm限制 2. 在jdk 11开始,jvm字节码的校验严格很多,`@AtLine`的方式增强的字节码很可能会被认为是非常的 3. 对于一定要了解某行变量的情况,可以用先本地增加打印语句,编译出新的`.class`,再用 `retransform`命令来热更新。个人经验,用`retransform`足够解决绝大部分问题了。
@lotabout 1. 这个功能是可以考虑做出来的,值得尝试下。 1. 如果要实现指定的 `@AtLine`,可能要直接调bytekit api,或者要写一个新的 annotation 之类的 1. jdk11字节码校验,这个可能要找一些比较复杂的例子,比如在 for 循环里调用另一个复杂参数的函数 1. 可能还要考虑类似动态trace的功能。比如watch 了x行,还要再watch y行。 https://arthas.aliyun.com/doc/trace#id9