OpenJDK 19调试时无法步入Continuation.yield方法的技术问询
解决OpenJDK 19中无法步入Continuation.yield()的问题
以下是几个可行的调试方案:
确保调试符号完整
OpenJDK默认发行版可能缺少完整调试符号,导致无法进入核心类方法。你需要下载带调试符号的OpenJDK 19版本,或从源码编译时开启调试符号生成(编译时添加--with-debug-level=slowdebug或--with-debug-level=fastdebug参数)。调整调试器过滤规则
多数IDE默认会过滤JDK核心类的调试入口,需在调试配置中修改设置:- 取消“跳过JDK类的调试”类选项
- 将
java.lang.Continuation添加到调试白名单,允许调试器进入该类方法
直接在目标方法设置断点
手动定位Continuation.yield()方法的源码,在方法第一行直接设置断点,而非从调用处尝试步入。这样调试器会在方法执行时触发断点,强制进入内部。禁用JIT内联优化
JIT编译器可能内联Continuation.yield()方法,导致调试器无法识别方法边界。启动JVM时可添加参数禁用内联:-XX:-Inline也可强制使用解释模式运行,确保方法调用链清晰:
-Xint
内容的提问来源于stack exchange,提问作者Semghh
相关产品推荐
相关产品推荐

