BTrace 初探

Posted mysgk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BTrace 初探相关的知识,希望对你有一定的参考价值。

BTrace 是一款java诊断工具,在解决现场问题的时候非常有用。

今天使用的时候碰到几个坑,先记录一下.
下载下来以后直接运行报错

[email protected]:~/btrace-bin-1.3.11/bin# ./btrace 6582 /root/testBtrace.java 
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/source/util/TaskListener
    at com.sun.btrace.client.Client.compile(Client.java:181)
    at com.sun.btrace.client.Client.compile(Client.java:164)
    at com.sun.btrace.client.Main.main(Main.java:189)
Caused by: java.lang.ClassNotFoundException: com.sun.source.util.TaskListener
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

百度半天才发现是因为没有配置JAVA_HOME 环境变量导致的.
第二个错

[email protected]:~# btrace-bin-1.3.11/bin/btrace 6582 HelloWorld.java 
Port 2020 unavailable.

端口被占用,修改端口即可.

btrace-bin-1.3.11/bin/btrace -p  2022 15516 HelloWorld.java

第三个错

[email protected]:~# btrace-bin-1.3.11/bin/btrace -p  2021 6582 HelloWorld.java btrace WARNING: Invalid ‘libs‘ configuration [null]. Path ‘/root/btrace-bin-1.3.11/build/btrace-libs‘ does not exist.

默认下载下来的btrace文件夹中没有btrace-lib,在btrace-bin-1.3.11/build下新建一个即可,把btrace-bin-1.3.11/build下的jar包也拷过去就好了.
最后的成果:

[email protected]:~# btrace-bin-1.3.11/bin/btrace -p  2022 15946 HelloWorld.java
search start!
search start!



以上是关于BTrace 初探的主要内容,如果未能解决你的问题,请参考以下文章

BTrace

Jvisualvm+Btrace使用

基于Btrace的监控调试

Btrace入门到熟练小工完全指南

利用jvisualvm使用btrace进行线上调试案例

04 使用 BTrace 进行拦截调试