BTrace原理浅析
BTrace一直以来都是很方便的调试跟找错工具,最近得空简单翻阅了一下他的源码,对BTrace的工作原理做了一下大概的总结,具体如下:
agent端
在com.sun.btrace.agent包下面都是agent中的代码,其中我们从Main这个类跟踪进去就会发现,Btrace在启动的时候大概做了以下几个事情:
1.加载、解析调用的参数
2.创建一个agentThread,其中就包括了启动服务端的调用
Thread agentThread = new Thread(new Runnable() {
@Override
public void run() {
BTraceRuntime.enter();
try {
startServer();
} finally {
BTraceRuntime.leave();