IntelliJ IDEA调试Java代码时调用栈行号显示错误如何解决?
IntelliJ IDEA调试时代码行号与调用栈行号不一致的解决方法
- 重新编译项目:执行
Build -> Rebuild Project,彻底生成新的字节码文件,避免增量编译导致源码与字节码的行号映射不匹配。 - 开启编译调试行号信息:进入
File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler,在Additional command line parameters中添加-g:lines(或直接用-g包含完整调试信息),添加完成后重新编译项目。 - 清理缓存并重启IDEA:执行
File -> Invalidate Caches...,选择Invalidate and Restart,修复因缓存损坏引发的行号解析错误。 - 校验源码与字节码一致性:如果是依赖模块出现问题,确保本地源码和依赖的字节码版本完全对应;自有模块则检查是否存在引用旧编译产物的情况,手动清理
target/out目录后重新编译。 - 排查字节码修改工具:若项目使用ProGuard、ASM等字节码增强或混淆工具,需在配置中保留行号信息,比如ProGuard需添加配置
-keepattributes SourceFile,LineNumberTable,防止行号被篡改。
内容的提问来源于stack exchange,提问作者leo
相关产品推荐
相关产品推荐

