VisualVM + BTrace
VisualVM下载地址:http://visualvm.github.io/download.html
解压后打开bin目录下的visualvm.exe
选择Tool-->Plugins,选择插件安装
测试代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class BTraceTest {
public int add(int a,int b){
return a+b;
}
public static void main(String[] args) throws IOException {
BTraceTest test=new BTraceTest();
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
for(int i=;i<;i++){
reader.readLine();
int a=(int) Math.round(Math.random()*);
int b=(int)Math.round(Math.random()*);
System.out.println(test.add(a,b));
}
}
}
运行测试代码,在visualVM中右键选择应用-->Trace Application

即可出现Btrace窗口

在这里可以编辑代码
public class TracingScript {
/* put your code here */
@OnMethod(
clazz="BTraceTest",
method="add",
location=@Location(Kind.RETURN))
public static void func(@Self BTraceTest instance,int a,int b,@Return int result){
println("调用堆栈:");
jstack();
println(strcat("方法参数A:",str(a)));
println(strcat("方法参数B:",str(b)));
println(strcat("方法结果:",str(result)));
}
}
点击Start即可开启
返回BTraceTest输入回车,观察两边的控制台信息


VisualVM + BTrace的更多相关文章
- 让VisualVM+BTrace进入unsafe mode
让VisualVM+BTrace进入unsafe mode http://kenai.com/projects/btrace/pages/UserGuide BTrace很强大,但有很多安全限制,比如 ...
- Java BTrace实战(1)--BTrace的入门和使用
前言: 对线上的java服务, 往往采用日志进行问题处理和分析. 倘若日志缺乏相关的信息时, 那又该如何处理? 远程调试会影响服务的正常工作, 修改代码重新部署的方案其实时性和灵活性难以保证(线上服务 ...
- JVM学习总结五(番外)——VisualVM
距离上次介绍Jconsole已经时隔两周了,这期间由于工作中要用go来做一个新项目,所以精力都用在入门go上了,不过发现go语言用起来真的挺不错的,比python感觉还好点,大家没事可以了解下. ...
- BTrace : Java 线上问题排查神器
BTrace 是什么 BTrace 是检查和解决线上的问题的杀器,BTrace 可以通过编写脚本的方式,获取程序执行过程中的一切信息,并且,注意了,不用重启服务,是的,不用重启服务.写好脚本,直接用命 ...
- BTrace 问题辅助排查工具使用手册
BTrace是调试神器,可以通过自己编写的脚本,获取应用的一切调用信息.而不需要重启应用! Btrace 项目源码信息(你行你上~) 项目地址:http://github.com/btraceio/b ...
- BTrace:线上问题排查工具
BTrace简介 GitHub地址:BTrace 下载地址:v1.3.11.3 官方使用教程:Btrace使用教程 使用场景 BTrace 是一个事后工具,所谓事后工具就是在服务已经上线了,但是发现存 ...
- Btrace官方教程-中文版
教程英文版来源:https://github.com/btraceio/btrace/blob/master/docs/usersguide.html BTrace用户指南 BTrace是一种安全,动 ...
- BTrace学习总结
一.简介: 在生产环境中经常遇到格式各样的问题,如OOM或者莫名其妙的进程死掉.一般情况下是通过修改程序,添加打印日志:然后重新发布程序来完成.然而,这不仅麻烦,而且带来很多不可控的因素.有没有一种方 ...
- Btrace的使用方法
本文基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版> 写在前面: Btrace有很多用法,比如说性能监视,连接泄露,内存泄漏,多线程竞争,而本文说的只是最基本的应用打印调用 ...
随机推荐
- 很实用的linux 上的svn安装和svnserver 的重启
虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装 #yu ...
- 自定义cell的高度
// // RootTableViewController.m // Share // // Created by lanouhn on 15/1/20. // Copyright (c) 2 ...
- Forward团队-爬虫豆瓣top250项目-成员简介与分工
马壮:擅长html,css,分工:分析网站源码 邢云淇:掌握python,java 分工:爬虫部分代码编写 张良:熟练掌握数据库 分工:数据库部分代码编写 年光宇:掌握c#,python 分工:代码整 ...
- 简述NotificationCenter、KVC、KVO、Delegate?并说明它们之间的区别?
http://blog.csdn.net/zuoerjin/article/details/7858488http://blog.sina.com.cn/s/blog_bf9843bf0101j5px ...
- java 判断手机号码和邮箱的正则表达式
很多场合会用到判断输入框输入的是否为手机或者邮箱,下面是这个正则表达式: Pattern patternMailBox = Pattern .compile( "^([a-zA-Z0-9 ...
- Android记录10--android.os.NetworkOnMainThreadException异常解决办法
2013年11月1日小光棍节 有一段时间没有发表新的博客了,最近一直在忙着开发新浪微博客户端遇到很多问题比较头痛,比如说本篇博客要讲的NetworkOnMainThreadException这个异常, ...
- django天天生鲜项目
.后台admin管理天天生鲜商品信息 models里 from django.db import modelsfrom tinymce.models import HTMLField #需要pip安装 ...
- kafka groupid
kafka 分组 简言之,就是相同分组的消费者,会分摊消费kafka中同一个topic中的数据.
- 分享自己使用的在线UML画图工具
刚接触UML时间不长,看了N多教学视频,下载好了几个软件各种不习惯 当我遇见了ProcessOn 从此我彻底“爱上”了它! http://www.processon.com/ UML各类例图它几乎全 ...
- C#Winfrom数据库读取日期(年月日格式转换)
显示类型:2018-6-1 //说明:data_time.Text 控件名文本值 :dataset.Tables[0].Rows[0]["art_time"] 数据集.表名.[行 ...