diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java index 0f062bf231cf..753e7f478639 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java @@ -894,9 +894,18 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils { if (body == null || !intersects(lineRange, body)) return null; if (body instanceof PsiCodeBlock) { for (PsiStatement statement : ((PsiCodeBlock)body).getStatements()) { - if (intersects(lineRange, statement)) { + // return first statement starting on the line + if (lineRange.contains(statement.getTextOffset())) { return statement; } + // otherwise check all children + else if (intersects(lineRange, statement)) { + for (PsiElement element : SyntaxTraverser.psiTraverser(statement)) { + if (lineRange.contains(element.getTextOffset())) { + return element; + } + } + } } return null; }