原创

调优-Btrace-Java动态、安全追踪(监控)工具

3、Btrace-Java动态、安全追踪(监控)工具

3.1 Btrace简介

>

  • BTrace可动态地向目标应用程序的字节码注入追踪代码

  • JavaCompilerApi、JVMTI、Agent、Introduction+ASM

    注意:

    1. 默认只能在本地运行
    2. 生产环境下可以使用,但是被修改的字节码不会被还原

3.2 Btrace安装及2种运行方式

https://github.com/btraceio/btrace
直接下载已编译版本

https://github.com/btraceio/btrace/releases

https://github.com/btraceio/btrace/releases/download/v1.3.11.1/btrace-bin-1.3.11.1.zip

添加环境变量:
1. 新疆环境变量 BTRACE_HOME ,添加Path:%BTRACE_HOME%\bin;

测试可能不支持jdk8

2.1 在JVisualVM中添加Btrace插件,添加classpath
2.2 使用命令行btrace <pid> <trace_script>
具题代码 com/jiangjiesheng/javaOptimizationAndDebug/btrace 

被测试的入口 
com.jiangjiesheng.javaOptimizationAndDebug.btrace.BtraceController

BTrace可以拦截构造函数、同名函数、返回值、异常(被catch的异常也能拦截)、行号、复杂参数、混进变量、正则匹配拦截

PrintArgComplex
PrintArgSimple
PrintConstructor
PrintJinfo
PrintLine
PrintOnThrow
PrintRegex
PrintReturn
PrintSame

2.3 基本使用
jps #查看java进程
3172 RemoteMavenServer
4008 Jps
8140 
btrace 3172 PrintArgComplex.java 

或者首先通过《1.2-详细笔记-基于JVisualVM的可视化监控.md》在jvisualvm安装BTrace Workbench插件,然后选中一个java进程,右击,trace application ,添加类似上述一样的脚本。

注意:如果使用到非jdk自带的类,需要指定classpath,类似User.class

正文到此结束
本文目录