UP

《Java Agent 基础篇》,课程地址:腾讯课堂CSDN51CTO。(三者内容相同,只是目录有差异)

主要内容

第一章 三个组成部分

  1. Java Agent 概览
  2. Agent Jar 的三个主要组成部分
  3. 手工打包(一):Load-Time Agent 打印加载的类
  4. 手工打包(二):Load-Time Agent 打印方法接收的参数
  5. 手工打包(三):Dynamic Agent 打印方法接收的参数
  6. Maven:Load-Time Agent 和 Dynamic Agent
  7. Java Agent + Java Module System
  8. 总结

第二章 两种启动方式

  1. Load-Time: agentArgs 参数
  2. Load-Time: inst 参数
  3. Dynamic: Attach API
  4. Dynamic: Attach API 示例
  5. 总结

第三章 Instrumentation API

  1. Instrumentation API
  2. Instrumentation.isXxxSupported()
  3. Instrumentation.xxxTransformer()
  4. Instrumentation.redefineClasses()
  5. Instrumentation.retransformClasses()
  6. redefine VS. retransform
  7. Instrumentation.xxxClasses()
  8. Instrumentation.getObjectSize()
  9. Instrumentation.appendToXxxClassLoaderSearch()
  10. Instrumentation.setNativeMethodPrefix()
  11. Instrumentation.redefineModule()
  12. InstrumentationImpl
  13. ClassFileTransformer
  14. All In One Examples
  15. 总结

第四章 应用与技巧

  1. Load-Time VS. Dynamic Agent
  2. None Instrumentation
  3. Multiple Agents
  4. Multiple Agents: Sandwich
  5. Self Attach
  6. JMX: JMXConnectorServer 和 JMXConnector
  7. JMX: management-agent.jar
  8. JMX: Instrumentation
  9. ja-netfilter 分析

Reference

Oracle

OpenJDK

学习字节码技术 - lsieun.github.io