繁体   English   中英

如何使用javaagent访问已检测方法的变量?

[英]How to access a variable of a instrumented method using a javaagent?

我一直在尝试从检测方法中获取值。 使用$ 1,$ 0获取参数值和当前对象变量的效果很好。 但是现在我想从方法中使用的对象中获取一个值。

例如,假设我正在检测org.h2.jdbc.JdbcPreparedStatement类。 我想通过使用方法主体中第112行中使用的conn变量来获取连接URL。 (JdbcConnection类包含url作为属性)但是当我使用as时,

conn.getURL()

它抛出CannotCompileException表示没有名为conn的类。

如何获得该URL? javassist是否有可能或者我做错了什么?

根据Javassist教程$0表示this$1起是参数),因此您可以使用

$0.conn.getURL()

要么

$0.getConnection().getURL()

访问连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM