【发布时间】:2013-05-27 10:57:30
【问题描述】:
我正在运行远程测试服务器,我想使用 byteman 对现有代码进行一些修改。
是否可以在运行时使用自定义规则文件附加 byteman(开始时我们应该设置规则文件,这在大多数情况下并不灵活)?
是否可以在启动服务器时不添加 -javaagent 将其附加到正在运行的服务器?
【问题讨论】:
标签: java jboss bytecode instrumentation byteman
我正在运行远程测试服务器,我想使用 byteman 对现有代码进行一些修改。
是否可以在运行时使用自定义规则文件附加 byteman(开始时我们应该设置规则文件,这在大多数情况下并不灵活)?
是否可以在启动服务器时不添加 -javaagent 将其附加到正在运行的服务器?
【问题讨论】:
标签: java jboss bytecode instrumentation byteman
有很详细的教程,网址是:https://community.jboss.org/wiki/ABytemanTutorial#how_do_i_install_the_agent_into_a_running_program
如教程所述,您可以随时使用bminstall.sh将byteman代理安装到正在运行的JVM,安装完byteman代理后,您可以使用bmsubmit.sh 向 JVM 提交 byteman 脚本。
例如:
第 1 步:
bminstall.sh -h 192.168.0.1 -p 8080 -b -Dorg.jboss.byteman.transform.all 12345
上面命令中的参数12345是你的java进程ID的pid
第 2 步:
bmsubmit.sh -h 192.168.0.1 -p 8080 -l abc.btm
这些命令的更详细用法请参考相应的命令帮助。
此外,还有程序员指南(PDF):http://downloads.jboss.org/byteman/2.1.3/ProgrammersGuide-2.1.3.1.pdf
【讨论】: