whitelilis
whitelilis
嗯, 需求不够明确。 1, sc -df 看静态属性已经很好, 如果也支持 -x 参数就更好了, 因为有一些 list 或 hashmap 会显示为内存地址。 2, 看 instance 这个需求不明确: 最希望有的一个功能是, 当代码执行到某一行时(因为函数调用可能发生在很多地方,不好定位), 查看 **当前环境** 下的一个 instance
比如  这个函数里, 执行到 236 行的时候, 我想看看 flushPeriodMs 的值是什么,类似这样的 或者, 可以知道一个函数里的执行路径是什么样的, 执行了哪些行(话说我现在用 btrace 就用来看执行了哪些行, 好判断它的执行逻辑)
离过年还有 4 天。。。。。
跳票半年了.......
又一个季度过去了。。。
找到程序的 out 日志中有如下东东 ``` java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "createClassLoader") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.security.AccessController.checkPermission(AccessController.java:884) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.SecurityManager.checkCreateClassLoader(SecurityManager.java:611) at java.lang.ClassLoader.checkCreateClassLoader(ClassLoader.java:274) at java.lang.ClassLoader.(ClassLoader.java:335) at java.security.SecureClassLoader.(SecureClassLoader.java:99) at java.net.URLClassLoader.(URLClassLoader.java:144) at com.github.ompc.greys.agent.AgentClassLoader.(AgentClassLoader.java:15) at com.github.ompc.greys.agent.AgentLauncher.loadOrDefineClassLoader(AgentLauncher.java:43) at...
在它的 policy 文件中打开各种限制 ``` permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "shutdownHooks"; permission java.io.FilePermission "~/.greys/lib/1.7.6.6/greys/greys-core.jar", "read"; ``` 报下面的错: ``` java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.github.ompc.greys.agent.AgentLauncher.main(AgentLauncher.java:131) at...
可以排除是机器配置或环境的问题,因为 greys 其它 java 进程是可以的。只有 ES 的不行。
醉了。。。。。今天再测试,居然可以用了。。。。 不过,周五的时候我确实远程 debug 了一下,看到 getTargetIp 得到的是 null。 后面我再多测试几次,看能不能复现。 搞错了,原来是另一个同学开了 greys 观察另一个 jvm, 我就连进去了。。。。。。再一次说明了这种不按进程号,按端口号的弊端,哈哈。  执行到这一行会出异常,所以下面那 个日志没有打。 出的异常是  args 的值如下: ;;targetIp=127.0.0.1;greysCore=/home/liuzhe/.greys/lib/1.7.6.6/greys/greys-core.jar;greysAgent=/home/liuzhe/.greys/lib/1.7.6.6/greys/greys-agent.jar;connectTimeout=6000;targetPort=9999;javaPid=27190;
另外, greys.sh 里执行的参数如下: -target 127.0.0.1:9999