VisualVM初次使用BTrace功能方法步骤

  前提安装好了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 }

  

  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 }

  

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

  

时间: 2024-12-31 03:40:30

VisualVM初次使用BTrace功能方法步骤的相关文章

用ADO操作数据库的方法步骤(ZT)

http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针. 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程.使用_ConnectionPtr接口返回一个

用ADO操作数据库的方法步骤

用ADO操作数据库的方法步骤 学习ADO时总结的一些经验 - 技术成就梦想 - 51CTO技术博客 http://freetoskey.blog.51cto.com/1355382/989218 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口返回一个记录集或一个空指针. 通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程.使用_Connecti

使用云脉车牌识别软件的方法步骤

车辆号牌是车辆唯一身份凭证,因此车牌识别系统成为城市智能交通管理系统中不可或缺的部分.车牌识别能够提高停车场管理效率,那么,如何使用手机快速识别车牌? 使用云脉车牌识别软件的方法步骤: 1.利用智能手机的摄像功能,对着车牌,拍一张清晰的照片 2.在云脉官网下载中心或应用市场下载云脉车牌识别软件,如下图所示,并且安装. 3.打开云脉车牌识别软件,点击"图像管理",再点击"导入",打开一张车牌图片,软件自动识别,或者直接选择拍照按钮再进行车牌拍摄. 4.软件自动提提取车

流程说明:实现一组功能的步骤

本文内容来自:<传智播客-OA项目> 1,充分了解需求,包括所有的细节,需要知道要做一个什么样的功能2,设计实体/表正向工程:设计实体.映射文件? 建表反向工程:设计表 ? 映射文件.实体3,分析功能分析到每个请求的粒度.得到的结果是我们需要处理多少种请求,其中每种请求对应一个Action方法.4,实现功能:1,创建Action,并定义出其中的方法.2,实现Action方法,并创建出所用到的新的Service方法.3,实现Service方法,并创建出所用到的新的Dao方法.4,实现Dao方法.

IOS-TextField功能方法详解

//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBord

JS实现移动端下拉刷新更多分页请求功能方法2.0

本次2.0升级版为js实现移动端加载更多下拉刷新更多分页请求功能方法(数据一次请求,前端分页,适用于数据流量较少,数据量压力小的页面)同时新增loading组件,turnToTop组件. 本文原创非转载,如需转载请注明出处:http://www.cnblogs.com/A-QBlog/p/7068959.html 废话不多说,直接上代码: 1 ;(function (w, $) { 2 3 var loadmore = { 4 /*单页加载更多 通用方法 5 * 6 * @param callb

iis7配置虚拟目录的方法步骤介绍

环境: WindowsServer2008操作系统: iis7 配置虚拟目录的方法步骤如下: 1.首先我们要创建虚拟目录: (1).我们点击桌面左下角的开始菜单,打开控制面板中的管理工具,再打开"Internet信息服务管理器": (2).打开之后我们在界面的左边列表中右键点击需要添加虚拟目录的站点,然后选择"添加虚拟目录":FTP (3).在弹出的对话框中,我们输入虚拟目录的名称,选择物理路径,完成之后就点击"确定"就可以了: (4).这样,我

使用python实现森林算法方法步骤详解

本文和大家分享的是使用python实现森林算法相关内容,一起来看看吧,希望对大家学习python有所帮助. 算法描述 随机森林算法 决策树运行的每一步都涉及到对数据集中的最优**点(best split point)进行贪婪选择(greedy selection). 这个机制使得决策树在没有被剪枝的情况下易产生较高的方差.整合通过提取训练数据库中不同样本(某一问题的不同表现形式)构建的复合树及其生成的预测值能够稳定并降低这样的高方差.这种方法被称作引导**算法(bootstrap aggrega

Node.js在不同平台的安装方法步骤详解

Mac平台下搭建node.js开发平台 安装方式 1 步骤: 下载mac版的.pkg文件(简单直接和Windows差不多) 安装方式 2 步骤: 安装xcode(命令:xcode-select --install) 安装Python 安装Homebrew(需要先安装ruby) 安装命令: ruby –e "$(curl –fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装 node.js