背景
BTrace 是一个 java 应用动态诊断工具,类似于 OpenSolaris 平台上的 DTrace 工具。
BTrace 是一个安全无风险的工具,会向运行中的 java 类注入代码,即"bytecode tracing"。(笔者实际测试中,发现是有风险的, 在 BTrace 退出时,程序有可能会退出:( )
BTrace 适用于 linux 和 mac os x 平台。
安装
下载二进制包
直接在下载页面,下载 release 包。
设置变量
设置 JAVA_HOME
和 PATH
环境变量
使用
快速入门
先编写一个示例的 java 代码,再编写一个示例的 BTrace 脚本,然后再运行。
示例 java 代码
Looper.java
运行效果
sleep 1698 ms, loop count = 0, total time = 0
sleep 1601 ms, loop count = 1, total time = 1698
sleep 1977 ms, loop count = 2, total time = 3299
sleep 1597 ms, loop count = 3, total time = 5276
sleep 1490 ms, loop count = 4, total time = 6873
sleep 1427 ms, loop count = 5, total time = 8363
示例 BTrace 脚本
在 sample
目录下有一系列示例脚本,这里选择 AllCalls1.java
脚本为模板,修改如下:
来跟踪 testBtrace.Looper
类的调用
运行
设置环境变量
export BTRACE_HOME=/path/to/btrace-bin-1.3.11
运行
[abeffect@note btrace-bin-1.3.11]$ btrace pid AllCalls1.java
valueOf in loop
valueOf in loop
valueOf in loop
format in loop
print in loop
sleep in loop
valueOf in loop
valueOf in loop
valueOf in loop
format in loop
print in loop
sleep in loop
退出的方法是:通过 Ctrl-c
来弹出 BTrace 控制台,如下:
Please enter your option:
1. exit
2. send an event
3. send a named event
4. flush console output
选择 1
即可退出.
参考
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于