BTrace工具使用简介
案例描述
使用test方法接收一个int类型参数,根据参数放入map中两个字符串。
现代码中没有打印出任何的日志,导致产生的int值无法确定,以及执行路径无法确定,这个时候可以使用BTrace来跟踪、分析程序路径。
import java.util.HashMap; import java.util.Map; import java.util.Random; public class TestHello { public static void main(String[] args) throws InterruptedException { Thread.sleep(2000 * 10); TestHello th = new TestHello(); Random random = new Random(47); th.test(random.nextInt(9) + 1); } private Map<String, String> model = new HashMap<String, String>(); public boolean test(int age) { String variable1 = "默认提示信息:你输入的参数是:" + age; String variable2 = "欢迎观临网上乐园"; model.put("variable1", variable1); model.put("variable2", variable2); if (age >= 1 && age <= 5) { variable1 = "你的输入参数介于1和5之间"; variable2 = "欢迎小朋友玩益智类游戏"; model.put("variable1", variable1); model.put("variable2", variable2); return true; } else if (age > 5 && age <= 10) { variable1 = "你的输入参数介于5和10之间"; variable2 = "欢迎小朋友进入英语游乐场"; model.put("variable1", variable1); model.put("variable2", variable2); return false; } else { return true; } } }
BTrace脚本:
import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; import java.util.HashMap; @BTrace public class BTraceField { @OnMethod(clazz="java.util.HashMap", method="put") public static void m(@Self HashMap map, Object Key, Object value) { // all calls to the methods with signature "()" println("===================="); print(Key); print(":"); println(value); } @OnMethod(clazz="TestHello", method="test") public static void d(@Self Object obj, int age){ print("test method is called, input age="); println(age); } }
首先运行TestHello
使用jps查找TestHello的PID,输入btrace <pid> BTraceField.java
输出:
test method is called, input age=3
====================
variable1:默认提示信息:你输入的参数是:3
====================
variable2:欢迎观临网上乐园
====================
variable1:你的输入参数介于1和5之间
====================
variable2:欢迎小朋友玩益智类游戏
其他相关博文
BTrace工具简介http://mgoann.iteye.com/blog/1409667
BTrace实例应用http://mgoann.iteye.com/blog/1409676
BTrace实际案例分析http://mgoann.iteye.com/blog/1409685
分享到:
相关推荐
MATLAB遗传算法工具箱应用实例
JavaScript实例应用 JavaScript实例应用 JavaScript实例应用
Matlab遗传算法工具箱函数及应用实例.好资料,Matlab遗传算法工具箱函数及应用实例.Matlab遗传算法工具箱函数及应用实例.
《PowerBuilder数据库开发关键技术与实例应用》pdf电子书
EXCEL控件工具箱应用实例.xlsEXCEL控件工具箱应用实例.xls
jsp应用实例JSP应用实例JSP应用实例JSP应用实例JSP应用实例
常用函数应用实例常用函数应用实例常用函数应用实例常用函数应用实例常用函数应用实例
自己做的BTrace监控,Linux服务器上的tomcat工程,压缩包包含BTrace开发所需的jar包 BTrace简单示例代码 jvisualvm.exe如果远程服务器监控JVM虚拟机信息
轻松应用CRC校验CRC校验应用实例CRC校验应用实例CRC校验应用实例
很详细的介绍遗传算法的书 还有实际操作哟
TC(linux下流量控制工具)详细说明及应用实例
Matlab遗传算法工具箱函数及应用实例
matlab gui应用实例 matlab gui应用实例 matlab gui应用实例 matlab gui应用实例 matlab gui应用实例 matlab gui应用实例 matlab gui应用实例
AutoCAD 2000开发工具—ObjectARX开发工具与应用实例+随书光盘里面的资源是坏的,书没法看。我上传一本吧
MATLAB通信仿真及应用实例详解pdf-MATLAB通信仿真及应用实例详解.part03.rar 论坛里有兄弟发过了。但是出了问题,这次补充一个完整的。 MATLAB通信仿真及应用实例详解.part09.rar ...
1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 1.6.2 文档类型声明 10 1.6.3 元素 11 1.6.4 注释 15 1.6.5 处理指令 15 1.6.6 空白处理 16 1.6.7 行尾处理 16 1.6.8 语言标识 16 1.7 格式良好的xml ...
面积体积的计算、实例35、实例72、实例77、使用剪贴板使用提示信息、提醒、我的类、以文本和2进制方式读取文件
使用MATLAB遗传算法工具实例详细.pdf使用MATLAB遗传算法工具实例详细.pdf使用MATLAB遗传算法工具实例详细.pdf使用MATLAB遗传算法工具实例详细.pdf使用MATLAB遗传算法工具实例详细.pdf使用MATLAB遗传算法工具实例详细...
Matlab遗传算法工具箱函数及应用实例.PDF