-
Notifications
You must be signed in to change notification settings - Fork 23
Home
chenjw edited this page Mar 4, 2020
·
36 revisions
Knife是一个Java应用的运行时命令行诊断工具。 有点像Btrace. 提供了很多Btrace没有提供的功能.
与Btrace类似的功能:
- 支持在运行时被加载到jvm中,不需要目前应用做任何修改.
- 可以跟踪一个方法调用,并打印出入参、返回结果和调用时间等信息.
Btrace所没有提供的功能:
- 命令行的交互方式,不需要编写脚本.
- 可以遍历堆内存,找到目标对象.
- 可以查看并修改某个对象的属性值.
- 可以主动调用某个方法,并可以跟踪调用的返回结果和调用时间等信息.
- 可以查找某个对象引用的所有对象或引用某个对象的所有对象.
https://sourceforge.net/projects/knife-download/files/
- 下载 knife-XXX.tar.gz
- 解压缩“tar -zxvf knife-XXX.tar.gz”
- 执行knife.sh

连接到本地运行的Jvm或远程Jvm

native代码单元测试保证,覆盖大多数分支。
??
最小agent,classloader隔离,自检测。
心跳,自动终止socket连接。