近期碰到一个诡异的事,IDEA出现跟踪代码跳转定位不准确的情况,只能跳转到class开头,不能定位到具体方法method,需要返回再跟踪一次才可以定位到具体方法。
真的是太奔溃了。
后台启动idea,看到跳转的时候有如下报错日志:
at java.base/java.util.concurrent.ForkJoinWorkerIhread.run(ForkJoinWorkerIhread.java:183)
Caused by: org.jaxen.UnresolvableException: No Such Function matches
at org.jaxen.SimpleFunctionContext.getFunction(SimpleFunctionContext.java:127)
at org.jaxen.ContextSupport.getFunction(ContextSupport.java:242)
at org.jaxen.Context.getFunction(Context.java:216)
at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:176)
at org.jaxen.expr.DefaultFunctionCallExpr.evaluateParams(DefaultFunctionCallExpr.java:195)
at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:179)
at org.jaxen.expr.DefaultPredicate.evaluate(DefaultPredicate.java:95)
at org.jaxen.expr.PredicateSet.applyPredicate(PredicateSet.java:269)
at org.jaxen.expr.PredicateSet.evaluatePredicates(PredicateSet.java:244)
at org.jaxen.expr.DefaultNameStep.evaluate(DefaultNameStep.java:215)
at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:140)
at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:677)
at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:216)
at net.sourceforge.pmd.lang.rule.xpath.JaxenXPathIRuleQuery.evaluate(JaxenXPathRuleQuery.java:69)... 61 more
经过一番斗争。
我禁用了版本低的插件sonar之后,再试了一下,竟然就可以了。
回顾了下:
应该是我idea版本升级之后,很多插件没升级,新版idea不支持。
或许还有什么类冲突之类的,导致 代码跟踪功能异常。
解决方案:
如何发现不支持的插件并禁用?
到这个界面,如果有不兼容插件,
右下角会有个红色❗️,
点进去选择disable 并重启idea 应该就可以了。