greys-anatomy
greys-anatomy copied to clipboard
jdk1.6.0_45 stack jdk方法
写了个testcase main函数死循环调test函数,test函数new一个hashmap并且put了一个kv stack -n 2 java.util.HashMap put显示affect 0 0(* put一样)然而stack * test没有问题。greys版本为1.7.6.6
java.util.HashMap 是系统类,默认不会作用的。
那有没有办法作用?事实上本来的目标是为了stack throwable里的方法,也无法生效
options unsafe true
非常感谢,getstacktrace方法测试ok。然而fillinstacktrace方法可以affect却不能stack到请问是不是不支持?如果不能有哪些case不支持呢?比如native方法能不能?
这是个好问题~有空梳理下,理论上除了
- java.lang.String#
- Integer#valueOf
都应该能被支持才对,我比较好奇你的fillinstacktrace理论上应该是能被支持的,报什么错了么?
没有报错并且看affect信息 class和method都有数字,看上去是ok的。问题是一直在等待,仿佛没有调用一样。 测试代码就是死循环调用thread.currentThread().getstackTrace();(New exception()).fillInStaceTrace();
发现* getstacktrace可以stack,* fillinstacktrace不能一直在等待。理论上前一个函数会调用后一个显示执行也不能捕获
ps:实际问题是druid的某个开关打开后会频繁getstacktrace……本来是perf到fillinstacktrace的,因为不能stack才尝试找getstacktrace
明白了,递归调用了。先不要观察fillinstacktrace,我在2.0中想办法解决掉这个问题。