关于BTrace定位问题

如何定位:

昨天的案例中使用的是精准定位,即clazz = 类的路径

例:

```

@OnMethod(

            clazz="com.rt.BtraceTest", method="add", location=@Location(Kind.RETURN)

)

```


这样子写的话,每个类都要写个脚本,到生产环境上是个大工程啊!

于是就有了plan B,正则表达式定位

正则表达式在两个"/"之间,中间的.用//转译

例:

```

@OnMethod(

            clazz="/com\\.rt\\..*/", method="/.*/", location=@Location(Kind.RETURN)

)

```


但是这个方法的会,如果范围太大,就会影响性能,所以正式环境中,范围要尽可能的小一点.

小一点有不够全怎么办呢!

于是plan C正式上场了,按接口或继承类定位

写一个base的接口或者基类,在类的前面加上”+”就可以了

例:

```

@OnMethod(

            clazz="+com.rt.BaseBtrace", method="/.*/", location=@Location(Kind.RETURN)

)

```

这样就想要定位谁就自己继承或实现一下,是不是完美

够用了吧,其实还有一个注解定位.

查了很多资料,试了很久都没成功,决定放弃

希望有成功的大佬能指导我一下.

附上几个测试小demo

//最简单的参数输出

```

@OnMethod(

            clazz="com.rt.BtraceTest", method="add", location=@Location(Kind.RETURN)

    )

    public static void func(int a, int b, @Return int result) {

        println("trace: =======================");

        jstack();

        println(strcat("a:", str(a)));

        println(strcat("b:", str(b)));

    }

```


//调用了几次

```

@Export static AtomicLong counter = new AtomicLong();

@OnMethod(

            clazz="com.rt.BtraceTest", method="add", location=@Location(Kind.RETURN)

    )

    public static void run() {

        counter.getAndIncrement();

    }

    @OnTimer(1000 * 30)

    public static void run(){

        BtraceUtils.println("count:" + counter.get());

        counter.set(0);

        }

//调用gc

@OnMethod(clazz = "java.lang.System", method = "gc")


    public static void onSystemGC() {


        println("entered System.gc()");


        jstack();


    }

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以为我已长大,却固执的认为,所有的努力会被看到; 以为介意便是小气,装作大度的样子,却在放不下的过程中,渐变渐远;...
    驻足观望阅读 330评论 0 0
  • 还是习惯听着老歌!回忆那时候的人和事,和那时候的风和阳光。人总有遗憾的事,遗憾的人。 曾认为最重要的事,现如今已经...
    浅草千叶子阅读 137评论 0 0
  • 1、创建第一个项目 使用 django-admin.py 来创建 HelloWorld 项目: django-ad...
    Dreamer_2099阅读 159评论 0 0
  • 商业企业如果不把穷人当成受害者或者负担,而把他们当成有韧性、有创意的企业家和有价值意识的消费者,把贫穷和匮乏当成资...
    May木棉阅读 717评论 0 0
  • 今天的练习内容是跟家长唠嗑,心中有了对象感,声音就显得自然了。
    欣_d993阅读 153评论 0 0