`
buzhucele
  • 浏览: 330651 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BTrace拦截输入参数及返回值

阅读更多
服务端类:
package test;

public class BTraceServer {

	public String sayHello(int i) {
		return "参数" + i;
	}

	public static void main(String[] args) throws InterruptedException {
		BTraceServer bt = new BTraceServer();
		int i = 0;
		while (true) {
			System.err.println(bt.sayHello(i++));
			Thread.sleep(1000);
		}
	}

}


客户端类:
package test;

import com.sun.btrace.BTraceUtils;
import com.sun.btrace.annotations.BTrace;
import com.sun.btrace.annotations.Kind;
import com.sun.btrace.annotations.Location;
import com.sun.btrace.annotations.OnMethod;
import com.sun.btrace.annotations.Return;
import com.sun.btrace.annotations.Self;

@BTrace
public class BTraceTest {
	@OnMethod(clazz="test.BTraceServer", method="sayHello",
		     location=@Location(Kind.RETURN))
	public static void onSayHello(@Self BTraceServer s, int param, @Return String ret){
		BTraceUtils.print(param);
		BTraceUtils.println(ret);
	}
			
}


1、将服务端类打成jar包;
2、btrace执行btrace -classpath D:\doc\btrace\btrace-bin\build\test.jar 【PID】 BTraceTest.java
3、btrace  -cp "SNAPSHOT.jar:1.7.8.jar" 32201 Test.java
4、btrace  -cp d:\path\classes 32201 Test.java
分享到:
评论

相关推荐

    SpringBoot的拦截器

    它的返回值是一个布尔值,这正是你提到的区别所在: - 当`preHandle()`返回`true`时,表示允许请求继续执行,Spring MVC会调用相应的控制器方法来处理请求。如果在`preHandle()`中进行了权限验证,那么只有验证通过...

    详解利用SpringMVC拦截器控制Controller返回值

    在这个场景中,我们利用拦截器来控制Controller方法的返回值,特别是当方法未实现或者需要在开发阶段返回模拟数据时。下面将详细介绍如何实现这一功能。 首先,我们需要定义两个注解:`Debug` 和 `StringResult`。 ...

    Spring拦截器,高级参数绑定

    下面将详细探讨Spring拦截器的使用以及高级参数绑定和Controller返回值的相关知识。 首先,我们创建一个Spring拦截器需要实现HandlerInterceptor接口或继承HandlerInterceptorAdapter抽象类。以下是一个简单的拦截...

    MyBatis拦截器:给参数对象属性赋值的实例

    在这个特定的实例中,我们讨论的是一个用于给参数对象属性赋值的拦截器。这个拦截器的主要目标是在执行增删改操作时,自动为数据模型对象的特定属性(如创建人、创建时间、修改人、修改时间等)赋值。 在MyBatis中...

    MyBatis拦截器分页与动态修改SQL及其参数值

    在这个主题中,我们将深入探讨如何利用MyBatis拦截器实现分页以及动态地修改SQL语句和参数值。 首先,我们关注的是"PaginationInterceptor.java",这是一个常见的分页拦截器实现。在MyBatis中,我们可以创建自定义...

    jfinal中拦截器(Interceptor)的参数注入

    jfinal中拦截器(Interceptor)的参数注入jfinal中拦截器(Interceptor)的参数注入

    java 请求参数过滤拦截

    这里的“java请求参数过滤拦截”主要是指在接口接收到用户输入的数据时,通过过滤器(Filter)对参数进行检查,防止恶意攻击者利用特殊字符执行SQL注入、跨站脚本攻击(XSS)等危害。下面我们将详细探讨这一主题。 ...

    filter对request请求拦截,对请求参数进行修改

    对request请求进行拦截,对请求参数修改。常用于前台提交表单参数关键字的过滤。此工具可以对参数拦截并转义后提交到对应的处理类。 除了添加两个JsFilter.java和GetHttpServletRequestWrapper.java之外,需要在web....

    拦截器、过滤器、参数读取坑记录

    在Java Web开发中,拦截器(Interceptor)和过滤器(Filter)是两种常见...总结来说,拦截器、过滤器和参数读取是Java Web开发中的基础工具,理解它们的工作原理和使用技巧,能帮助我们更好地构建高效、稳定的Web应用。

    asp.net Core Post Json方式给控制器Action传参并拦截丢失参数等错误信息

    原生asp.net不支持通过json提交 方式给控制器的Action传参数,本程序通过给自定义输入字符串格式方法。在action的传参上加入FromJsonKey属性即可在传入的json中传入参数,如果传入的json中不存在相应键即报错 ...

    VB如何拦截键盘输入

    在VB(Visual Basic)编程中,拦截键盘输入是一项常见的需求,尤其在开发特定类型的软件时,如游戏、安全应用或自定义输入控件等。本文将深入探讨如何在VB环境中实现键盘输入的拦截和处理。 首先,我们需要了解VB中...

    详解Retrofit Interceptor(拦截器) 拦截请求并做相关处理

    拦截器可以拦截请求并做相关处理,典型的处理方式是修改 header,但我们也可以在拦截器内部添加统一参数等。 Interceptor 接口只有一个方法,即 intercept(Chain chain) 方法,该方法返回 Response 对象,是响应...

    burpsuite小白教程。手把手教学 使用burpsuite拦截浏览器请求,修改请求参数,查看返回结果

    本教程将针对初学者,详细讲解如何使用Burpsuite来拦截浏览器请求,修改请求参数,以及查看返回结果。 首先,让我们了解什么是HTTP代理。HTTP代理是网络通信的一种方式,它作为一个中介服务器,接收来自客户端的...

    javascript实现fetch请求返回的统一拦截

    然而,fetch默认并不提供请求和响应的拦截器,这对于需要进行全局处理,比如鉴权、错误处理等场景并不方便。本篇文章主要探讨如何使用JavaScript实现fetch请求返回的统一拦截。 首先,我们需要理解拦截器的目的。...

    springboot利用拦截器打印各个接口的响应时间.rar

    springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。springboot利用拦截器打印各个接口的响应...

    易语言Fiddler数据拦截

    什么是易语言Fiddler,答:有点类似于代理服务器那样,可拦截网络数据,而且可以修改,可以修改返回的数据拦截修改,灵活性很大,调用的插件为FD插件,当前版本可以拦截的数据有: 网页地址, 网页源码, 请求参数, ...

    spirngmvc拦截器,拦截处理body和表单值.rar

    本教程将深入探讨如何在Spring Boot项目中配置和使用拦截器来拦截请求的body和表单参数。 首先,我们需要了解`WebMvcConfigurer`接口。这是Spring MVC提供的一种非强制性配置方式,可以用来定制MVC的行为。我们可以...

    Btrace资源

    这个文件可能是Btrace的主配置文件或者可执行程序,用于设置Btrace的行为和参数。具体使用方法可能需要结合其他文档或源码来理解。 3. **btrace-client.jar** 这是Btrace客户端的JAR文件,它包含了与Btrace服务器...

Global site tag (gtag.js) - Google Analytics