BTrace入门
来源:互联网 发布:卸载windows更新补丁 编辑:程序博客网 时间:2024/06/05 02:45
BTrace入门
概念性的东西自行网上查阅吧。
安装
现在btrace项目已经迁移到了github上了。这点可以从官网( https://kenai.com/projects/btrace/downloads/directory/releases/latest )上看出。
点开这个链接就会跳转到btrace项目的github地址:https://github.com/btraceio/btrace
下面直接给出下载地址:https://github.com/btraceio/btrace/releases
我这里下载的版本是 https://github.com/btraceio/btrace/releases/download/v1.3.8.1/btrace-bin-1.3.8.1.tgz
下面的安装步骤主要就是设置环境变量,其实也可以不设置。这里设置下只是为方便执行命令而已。另外各种操作系统设置环境变量的方法也有所不同,我这里是采用的 mac 系统,采用的终端软件我也改变了一下,所以需要各自根据自己的实际情况进行设置。
下载完成后,执行:
mkdir btracetar -zxvf btrace-bin-1.3.8.1.tgz -C btrace
假设btrace路径为 : /Applications/btrace
下面只需要设置 BTRACE_HOME 和 PATH 两个环境变量即可。
注意我这里修改的文件是~/.zshrc文件。这个要看各自使用的操作系统以及所使用的terminal客户端而定。具体是哪个文件请各自查阅相关资料。
vim ~/.zshrc
拉到文件末尾,添加以下代码:(建议不要去修改已有的配置,只需要在末尾追加即可)
export BTRACE_HOME="/Applications/btrace"export PATH=$BTRACE_HOME/bin:$PATH
保存文件,执行:
source ~/.zshrc
基本用法
btrace pid btrace脚本
编写测试类
package com.btrace;import java.util.Random;import java.util.UUID;public class RemoteClass { public String f1(String a, int b) { System.out.println(a + " " + b); return a; } public static void main(String[] args) { RemoteClass rc = new RemoteClass(); while (true) { rc.f1(UUID.randomUUID().toString(), new Random().nextInt()); try { Thread.sleep(500); } catch (InterruptedException e) { } } }}然后启动main方法,并找到pidjps -ml我这里的pid 为:13705
编写btrace脚本
- 我这里的脚本保存路径为:/Users/xxx/Desktop/btrace_script
cd /Users/xxx/Desktop/btrace_script
Btrace初体验
功能: 每次执行完f1后,打印 “Hello BTrace”
import com.sun.btrace.annotations.*;import static com.sun.btrace.BTraceUtils.*;import java.lang.reflect.Field;@BTrace public class HelloBtrace { @OnMethod( clazz="com.btrace.RemoteClass", method="f1" ) public static void onF1() { println("Hello BTrace"); }}
保存为:HelloBtrace.java
执行脚本:
btrace 13705 HelloBtrace.java
获取方法参数
- 功能:得到参数
注意:参数的定义,顺序,个数保持一致。(个数我这边测试是必须保持相同的,至于类型,顺序是否必须保持一致就没有测试了)
import com.sun.btrace.annotations.*;import static com.sun.btrace.BTraceUtils.*;import java.lang.reflect.Field;@BTrace public class HelloBtrace { @OnMethod( clazz="com.btrace.RemoteClass", method="f1" ) public static void onF1(String a,int b) { println(str(a)); println(str(b)); println(""); }}
执行脚本:
btrace 13705 HelloBtrace.java
获取方法返回值
功能:获取方法的返回值
import com.sun.btrace.annotations.*;import static com.sun.btrace.BTraceUtils.*;import java.lang.reflect.Field;@BTrace public class HelloBtrace { @OnMethod( clazz="com.btrace.RemoteClass", method="f1", location=@Location(Kind.RETURN) ) public static void onF1(String a,int b,@Return String result) { println(str(a)); println(str(b)); println(str(result)); println(""); }}
执行脚本:
btrace 13705 HelloBtrace.java
更多功能
- 参考1:https://kenai.com/projects/btrace/pages/UserGuide
- 参考2:btrace的安装目录下有个 samples 文件夹,里面有各种示例
总结
对Btrace的用法主要就是学习用提供的各种注解,以及com.sun.btrace.BTraceUtils类提供的各种功能。
如果想要了解各个注解的文档,可以参考:https://btrace.kenai.com/javadoc/1.2/com/sun/btrace/annotations/package-summary.html
- BTrace入门
- BTrace入门
- BTrace入门
- BTrace入门
- 神器 BTrace 快速入门
- BTrace
- Btrace
- BTrace
- btrace
- btrace
- btrace
- Btrace入门到熟练小工完全指南
- Btrace入门到熟练小工完全指南
- Btrace使用
- 看一看btrace
- btrace 用户手册
- BTrace使用
- BTrace 指南
- 求2个字符串的最长公共子串长度
- 使用jquery实现开始日期小于结束日期
- 《JavaScript高级程序设计》总结一
- corba出体验,通过idltojava(idlj)生成java文件
- 从走出校门到Java实习生生活
- BTrace入门
- Android 内存泄露实践分析
- 设计模式--Composite 模式
- 我的LFS ID是26328
- 二维码识别相关资源
- 论文笔记:Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks
- Android Native源码中使用 openCV
- javax.ws.rs.core.UriBuilder.uri异常
- 代理模式