运用HSDB查看JVM加载的class的字节码
今天在学习动态代理时,突然很好奇怎么查看cglib生成的代理类的字节码。 对于jdk proxy可以使用sun.misc.ProxyGenerator类生成字节码,那么cglib proxy字节码怎么查看呢?
在网上查了资料,发现可以使用HSDB查看JVM运行时期的数据,从而可以查看JVM加载的class的字节码吗,又学到了一招,记录如下:
1. 在命令行, 执行jps, 查看我们要查看的JVM的PID
2. 执行HSDB(HotSpot Debugger) 工具, java -classpath "%JAVA_HOME%/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB
3. File->Attach to Hotspot Process, 输入JVM PID
4. Tools->ClassBrowser