入口
org.jacoco.agent.rt.internal.PreMain
/**
* This method is called by the JVM to initialize Java agents.
*
* @param options
* agent options
* @param inst
* instrumentation callback provided by the JVM
* @throws Exception
* in case initialization fails
*/
public static void premain(final String options, final Instrumentation inst)
throws Exception {
// 从命令行参数中获取k-v参数
final AgentOptions agentOptions = new AgentOptions(options);
// 创建agent对象 用来管理runtime生命周期
final Agent agent = Agent.getInstance(agentOptions);
// 在运行阶段收集执行信息
final IRuntime runtime = createRuntime(inst);
runtime.startup(agent.getData());
//注册CoverageTransformer
inst.addTransformer(new CoverageTransformer(runtime, agentOptions,
IExceptionLogger.SYSTEM_ERR));
}
注册了CoverageTransformer之后,在class加载时,字节码会被此类修改,处理分为:label对象标记,探针植入&#x