User: rednesto Date: 05 May 23 23:53 Revision: 484219ce0d8ee14ec2b9a1ec5e34d90205b3fe8b Summary: Remap bytecode to source lines in mixin targets Fixes #2026 TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=8492&personal=false Index: src/main/kotlin/platform/mixin/debug/MixinPositionManager.kt =================================================================== --- src/main/kotlin/platform/mixin/debug/MixinPositionManager.kt (revision 91691f4496210c646a609650f87eadd9d9dd0f62) +++ src/main/kotlin/platform/mixin/debug/MixinPositionManager.kt (revision 484219ce0d8ee14ec2b9a1ec5e34d90205b3fe8b) @@ -36,6 +36,7 @@ import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFileManager +import com.intellij.psi.PsiCompiledElement import com.intellij.psi.PsiFile import com.intellij.psi.PsiManager import com.sun.jdi.AbsentInformationException @@ -76,8 +77,18 @@ if (psiFile != null) { // File found, return correct source file - return SourcePosition.createFromLine(psiFile, location.lineNumber() - 1) + var line = location.lineNumber() - 1 + if (psiFile is PsiCompiledElement) { + val adjustedLine = DebuggerUtilsEx.bytecodeToSourceLine(psiFile, line) + if (adjustedLine > -1) { + line = adjustedLine - } + } + } + + if (line > -1) { + return SourcePosition.createFromLine(psiFile, line) + } + } } catch (ignored: AbsentInformationException) { }