前提安装好了VisualVM,并且安装了插件BTrace(期间出现了一个小问题,那就是标签里面怎么找不到BTrace标签,后面经过实践在VisualVM的application里找到要调试的进程,然后通过右击那个进程即可找到BeTrace这个标签,来进行coding)

1、我这在esclipse里面的演示demo coding如下:

 1 /**
 2  *
 3  */
 4 /**
 5  * @author Administrator
 6  *
 7  */
 8 package com.lyq.demo;
 9
10 import java.io.BufferedReader;
11 import java.io.IOException;
12 import java.io.InputStreamReader;
13
14 public class BTraceTest{
15
16     public int  add(int a, int b) {
17         return a+b;
18     }
19
20     public static void main(String[] argStrings) throws IOException{
21
22         BTraceTest bTraceTest = new BTraceTest();
23         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
24
25         for(int i=0; i<10; ++i){
26             reader.readLine();
27             int a = (int)Math.round(Math.random()*1000);
28             int b = (int)Math.round(Math.random()*1000);
29             System.out.println(bTraceTest.add(a, b));
30         }
31
32     }
33 }

View Code

  

  2、在VisualVM里想动态调试输出日志的代码如下:

 1 /* BTrace Script Template */
 2 import com.sun.btrace.annotations.*;
 3 import static com.sun.btrace.BTraceUtils.*;
 4
 5 @BTrace
 6 public class TracingScript {
 7     /* put your code here */
 8     @OnMethod(
 9         clazz="com.lyq.demo.BTraceTest",
10         method="add",
11         location=@Location(Kind.RETURN)
12     )
13     public static void func(@Self com.lyq.demo.BTraceTest instance, int a, int b, @Return int result)
14     {
15         println("调用堆栈:");
16         jstack();
17         println(strcat("方法参数A: ",str(a)));
18         println(strcat("方法参数B: ",str(b)));
19         println(strcat("方法结果: ",str(result)));
20     }
21
22 }

View Code

  

  3、接下来编译通过后,在eclipse里调试,或者已经放到tomcat里运行的程序运行时,VisualVM里会对应的输出你要调试的代码的结果,如图示:

  

转载于:https://www.cnblogs.com/luoyaqi/p/5525959.html

VisualVM初次使用BTrace功能方法步骤相关推荐

  1. TIA博途WINCC中给IO域添加确认功能的具体方法步骤

    TIA博途WINCC中给IO域添加确认功能的具体方法步骤 在TIA博途中新建一个项目,添加一个PLC和HMI设备,这里就不再演示添加过程,在PLC默认变量表中添加一个"输出变量", ...

  2. win10系统复制粘贴功能失效解决方法步骤

    描述:win10系统复制粘贴功能失效解决方法步骤 步骤: 方法一:重启win10资源管理器 方法二:重启词典软件

  3. n6pro android,360 N6Pro开启开发者选项功能的图文教程,方法步骤:  1、我

    360 N6Pro开启开发者选项功能的图文教程,方法步骤: 1.我 现在很多手机上都是具备有开发者选项功能的,而只有我们需要对手机进行高级的特殊权限设置时,才会需要去把它打开:有不少的360 N6Pr ...

  4. 三菱FX5U与西门子S7-1200通过简单CPU通信设置实现以太网通信功能的具体方法步骤

    三菱FX5U与西门子S7-1200通过简单CPU通信设置实现以太网通信功能的具体方法步骤 1. 准备工作 硬件:FX5U系列PLC,S7-1200系列PLC,以太网交换机(可选) 软件:三菱GX WO ...

  5. 根据title 关闭cmd 窗口_2种Win7关闭休眠功能方法

    首先我们了解一下休眠,休眠其实是将内存中的数据保存在硬盘中并且关闭计算机,下次开机时会重新将这些数据恢复到内存中,便于快速启动.如果启用了"休眠"功能,会在系统盘生成一个名为hib ...

  6. pycharm自带python.exe_Pycharm自带Git实现版本管理的方法步骤

    之前一直使用本地的git客户端,通过命令来上传.下载代码到Gitlab:每次都需要启动git客户端,敲git命令来完成,不够灵活,因为强大的Pycharm就自带git功能,可以直接在Pycharm完成 ...

  7. idea创建包怎么让包分层_idea创建Spring项目的方法步骤(图文)

    Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其著作 Expert One-On-One J2EE ...

  8. wamp增加php,新版PHPWAMP自定义添加PHP版本方法步骤

    新版PHPWAMP自定义添加PHP版本方法步骤 发布时间:2020-05-08 10:19:50 来源:亿速云 阅读:210 作者:三月 本文主要给大家介绍新版PHPWAMP自定义添加PHP版本方法步 ...

  9. mergesort_Mergesort算法的功能方法

    mergesort by Joe Chasinga 通过乔·查辛加(Joe Chasinga) Mergesort算法的功能方法 (A functional approach to mergesort ...

  10. android获取版本号报错,Android开发:获取安卓App版本号的方法步骤

    在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能.Android的App版本号相关内容比iOS的App版本号内容要多,而 ...

最新文章

  1. 国家集训队2009 书堆
  2. 千万级高德服务单元化方案和架构实践
  3. linux 协议栈之socket,Linux协议栈之BSD和INET socket层(一)
  4. 6.exit _exit _Exit
  5. 中国联通华东云数据中心—电气培训
  6. 什么是T4级数据中心
  7. 计数排序及其改进 C++代码实现与分析 恋上数据结构笔记
  8. Hadoop Yarn生产环境核心配置参数
  9. 微服务设计模式(下)
  10. 活代码LINQ——08
  11. java基础-基础类型包装类型
  12. matlab43个神经网络分析代码,《MATLAB 神经网络43个案
  13. python爬取上市公司年报信息_爬取巨潮资讯制造业公司年报数据
  14. github国内镜像站
  15. java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)
  16. 如何安装OpenCVE
  17. 杰理之AI协议之CMD_SET_BLE_VISIBILITY命令格式【篇】
  18. 【毕业设计】室内定位系统(wifi指纹定位)
  19. 数据矿工学习-情感分析框架DeepEmo论文-个人中文翻译
  20. Leetcode天池大赛压轴题分治dp

热门文章

  1. docker portainer_Docker可视化管理:Portainer中文版
  2. 象棋python代码_python象棋_python 象棋_python象棋源码 - 云+社区 - 腾讯云
  3. unity 编辑器 混合使用固定布局和自动布局(二)
  4. mac docker nginx 配置
  5. Gradle引入外部资源冲突问题,Gradle版本库冲突解决
  6. android sh 指令_Android ADB Shell命令解析
  7. 7. 锁定框架(The Locking Framework)
  8. Prototype使用$F()函数
  9. 【渝粤教育】国家开放大学2018年春季 0538-21T社区护理 参考试题
  10. 【渝粤教育】国家开放大学2018年春季 0706-21T行政管理学导论 参考试题