BTrace:https://kenai.com/projects/btrace,BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used to dynamically trace a running Java program (similar to DTrace for OpenSolaris applications and OS). BTrace dynamically instruments the classes of the target application to inject tracing code ("bytecode tracing"). Tracing code is expressed in Java programming language.
BTrace介绍:一个Java的动态跟踪工具,BTrace的工作的基本原理是把跟踪的代码动态替换到被跟踪的Java程序内,其实现机制是Sun Attach API + BTrace脚本解析引擎 + Objectweb ASM + JDK6 Instumentation,项目主页是在这里,用户指南点击这里。
BTrace使用:
1)解压并加可执行权限
tar xvf btrace-bin.tar.gz chmod +x bin/btrace
2)查找java的进程号pid
ps aux | grep "java"
3)编写btrace脚本:需要看到调用参数,因此import额外的class
import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; import com.xxx.OrderQuery; @BTrace public class TestMethod { @OnMethod( clazz="com.xxx.impl.OrderServiceImpl", method="getSingleOrderById" ) public static void test(OrderQuery orderQuery) { println(strcat("parameter tid: ",str(orderQuery.tid))); } }
4)执行脚本:注意build目录下新增了com目录,包含接口参数类型的class
[qinde@sirius049090.cm4 build]$ ll total 772 -rw-r--r-- 1 qinde users 273544 Jul 31 12:37 btrace-agent.jar -rw-r--r-- 1 qinde users 171502 Jul 31 12:37 btrace-boot.jar -rw-r--r-- 1 qinde users 325121 Jul 31 12:37 btrace-client.jar drwxr-xr-x 3 qinde users 4096 Jan 14 16:08 com [qinde@sirius049090.cm4 btrace]$ ls aa.txt bin build COPYRIGHT docs LICENSE.txt README.txt samples TestMethod.java THIRDPARTYLICENSEREADME.txt [qinde@sirius049090.cm4 btrace]$ sudo -u admin ./bin/btrace -cp build/ 17794 TestMethod.java
PS
1)Please set JAVA_HOME before running this script,需要EXPORT环境变量
export JAVA_HOME=/opt/xxx/java
2)案例记录:beta发布,打开新业务开关时,发现日志中有npe,怀疑和请求参数有关,但日志中看不到参数,因此准备以上的btrace脚本,发现确实有未预料到的参数哈。。真好用啊!
3)返回值,location=@Location(Kind.RETURN)
相关推荐
最新的btrace-bin-1.3.11.1.zip,以前的包用起来缺少一个文件,特意下载了最新的压缩包
btrace-bin-1.3.11.zip 目前最近的版本,java调度的绝对利器
net-java-btrace-visualvm.nbm java visualvm btrace 插件
btrace-bin直接解压缩配置环境变量后即可运行使用。 java监控调试工具虚拟机监控程序,利用BTrace可以在线监控java程序状态。 BTrace是一种安全,动态的Java跟踪工具。BTrace通过动态(字节码)检测正在运行的Java...
Java的安全动态追踪工具 BTrace通过运行Java程序的动态(字节码)工具类来工作。 BTrace将追踪操作插入正在运行的Java程序的类中,并将被追踪的程序类热插拔。
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
BTrace 是一款利用hotSpot虚拟机可以动态替换class的特点而完成的,可以对online的程序动态的改变类的行为(一般为加些打印日志),进而进行线上调试的一个工具。
java线上问题定位神器,Btrace-bin-1.3.10,适用于jdk1.7(+),解压即可使用,一般人我不告诉他。
btrace-bin-1.3.11.3.zip java监控调试工具虚拟机监控程序
btrace-bin-1.3.11 目前是最新的版本 相应的还有 zip版本的
BTrace作为线上问题定位神器,它在侵入、安全、资源占用等方面表现的都非常出色。
btrace-sr 实战学习笔记,其号称“线上问题追踪神器”。
Btrace Java 发布版本,Java 虚拟机监控程序
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用