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

远程调试javaagent的premain方法

阅读更多
给Java进程开启远程调试的监听的常用方式有两种:
方式1:在启动java进程的命令行${JAVA_HOME}/bin/java 后面增加参数
-XDebug -Xrunjdwp:transport=dt_sockt,server=y,suspend=y,address=0.0.0.0:7007

方式2:在启动java进程的命令行${JAVA_HOME}/bin/java 后面增加参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=0.0.0.0:7007


使用前面一种方式启动远程调试监听时,使用IDE的远程调试连接java进程的7007端口进行远程调试时,会直接进入main方法,不能调试-javaagent的premain方法

需要调试-javaagent的premain方法,需要使用-agentlib指定开启远程调试的参数
分享到:
评论

相关推荐

    java 代理例子 -javaagent,premain方式实现

    通过这种方式,我们可以在不修改Spring Boot应用源代码的前提下,利用`javaagent`和`premain`方法实现对应用的动态增强,这对于开发工具、性能分析、调试等场景非常有用。需要注意的是,由于`premain`是在JVM启动时...

    java项目实现热更源码-javaagent

    这个Agent需要包含`premain`或`agentmain`方法,用于接收Instrumentation实例,并在此基础上进行类的动态加载或替换。 2. **指定Agent参数**:在Java应用启动时,通过`-javaagent`参数指定Agent的路径和可选参数。...

    java agent注册为windows服务

    通常,我们需要实现`premain`方法,这是Java Agent的入口点,它会在应用程序的主类加载前被调用。 ```java public class ServiceRegisterAgent { public static void premain(String agentArgs, Instrumentation...

    java agent使用全解析

    当Java虚拟机启动时,在执行main函数之前,JVM会先运行-javaagent所指定jar包内Premain-Class这个类的premain方法。 java agent的主要作用是提供了一个Class类型的转换器,可以在运行时接受重新外部请求,对Class...

    javaagent使用指南-rickiyang1

    总之,Javaagent 提供了一种在运行时修改 Java 应用程序行为的能力,通过 `premain` 方法和 `Instrumentation` 接口,开发者可以实现诸如动态代理、性能监控、日志注入等多种功能。这种能力使得 Java 在灵活性和可...

    java JAVA_OPTS javaagent

    源码通常会包含关键的`premain`方法,这是Java代理的主要入口点,它会在JVM启动时被调用。 `使用说明.txt`应当提供了`testagent.jar`的使用指南,包括如何配置`JAVA_OPTS`,如何传递参数,以及可能需要关注的注意...

    JavaAgent例子-agentmain方式

    在Java中,有两种启动JavaAgent的方式:premain和agentmain。本示例主要关注的是agentmain方式。 `premain`是在JVM启动时调用的,而`agentmain`则是在应用程序运行时通过`java.lang.instrument.Instrumentation`...

    javaagent+javassist

    1. 创建一个`javaagent`,定义一个`premain`方法,该方法会在JVM启动时被调用: ```java public class MyAgent { public static void premain(String agentArgs, Instrumentation inst) { inst.addTransformer...

    JavaAgent例子-agentmain方式 demo

    6. **虚拟机接口(JDI)**:VirtualMachine是Java Debug Interface (JDI)的一部分,它提供了对远程JVM的访问,可以用来附加、调试、监视JVM状态。在`agentmain`中,我们可以通过JDI动态附加到目标进程,然后利用`...

    Java-premain 案例 2022.2.2版本

    在Java中,一个类如果要作为premain代理,需要实现`java.lang.instrument.Instrumentation`接口,并通过`-javaagent`启动参数指定。 `config`目录很可能包含了配置文件,这些文件用于设置premain代理的行为,例如...

    idea maven 搭建java agent项目,手把手教你实现方法耗时统计的java agent.zip

    使用`-javaagent`参数指定你的Agent jar路径,以及`premain`方法的参数,如果有的话。 7. **收集和展示数据**:在Agent中,你需要实现数据的收集和展示。这可能包括将统计信息记录到日志文件,或者通过Socket发送到...

    Java Agent源码(带Jar包)

    Java Agent通常用于性能监控、日志记录、代码覆盖率分析、调试辅助等场景。在这个"Java Agent源码(带Jar包)"中,我们可以期待找到实现这些功能的源代码和预编译的jar包。 首先,让我们深入理解Java Agent的工作...

    基于Bytebuddy的Java Agent AOP框架.zip

    Java Agent是一种在JVM级别对程序进行...通过学习和实践,我们可以掌握如何使用ByteBuddy来创建高效、灵活的代理类,以及如何利用Java Agent实现字节码级别的方法拦截,从而提升我们的编程技巧和对Java底层机制的理解。

    java agent demo

    在"java agent demo"中,我们看到使用了`premain`方法,这是Java Agent API的一部分,定义在`java.lang.instrument.Instrumentation`接口中。`premain`方法会在JVM启动并加载目标应用程序之前被调用,参数包括`...

    手把手教你实现一个Java Agent.pdf

    1. 启动时加载(Premain):在JVM启动时通过`-javaagent`参数指定Agent的jar包,并调用其`premain`方法。 2. 运行时加载(Attach API):在JVM运行期间,通过 Attach API 动态加载Agent。 `premain`方法的签名如下...

    java agent 使用及实现代码

    premain 方法是 Java Agent 的入口方法,用于初始化 Java Agent。addTransformer 方法用于添加字节码转换器,用于转换字节码。 实现 Java Agent 的步骤 1. 实现 premain 方法 2. 在 MANIFEST.MF 文件中指定 ...

    JavaAgent:Javassist 与 Asm JavaAgent 字节码动态编程项目

    1. `premain` 或 `agentmain` 方法:这是JavaAgent的核心入口,定义了对字节码的处理逻辑。 2. `Transformer`:负责转换字节码。对于Javassist,这通常涉及`ClassPool`,`CtClass`等对象;而对于ASM,我们需要创建`...

    基于 javaagent 对 java 原生类的 方法进行字节码动态修改, 以此引发的一些关于 绕过 Java 软件.zip

    Javaagent 的核心是 `premain` 方法,它在 JVM 启动时调用,允许我们注册一个代理,这个代理可以在类加载到 JVM 之前对其进行修改。`Instrumentation` 接口是与 javaagent 交互的关键,它提供了添加、移除类文件转换...

    Java Agent实现系统数据采集

    要创建一个Java Agent,我们需要定义一个包含`premain`方法的类,这个方法会在JVM启动时调用。例如: ```java public class MyAgent { public static void premain(String agentArgs, Instrumentation inst) { //...

    javaAgent实现补丁不重出功能,通过attach实现程序运行时加载,同时通过shell脚本部署到容器内

    当一个JavaAgent被加载时,JVM会调用`premain`方法,并传递一个`Instrumentation`实例,我们可以用这个实例来实现字节码的修改。例如,我们可以使用ASM、ByteBuddy或javassist等字节码库来进行增强。 对于"补丁不重...

Global site tag (gtag.js) - Google Analytics