Skip to content

LDEV-6335 native stepping by line, rather than executionLog code blocks#9

Merged
zspitzer merged 1 commit into
mainfrom
ldev-6335-native-stepping-by-line
May 21, 2026
Merged

LDEV-6335 native stepping by line, rather than executionLog code blocks#9
zspitzer merged 1 commit into
mainfrom
ldev-6335-native-stepping-by-line

Conversation

@zspitzer
Copy link
Copy Markdown
Member

LDEV-6335

Native step-over needed two clicks to advance past any source line that compiles to more than one instrumentation point — typically a multi-expression CFSET like <cfset c = a & b>, which fires shouldSuspend once per sub-statement.

Root cause: the STEP_OVER decision was depth-only (currentDepth <= startDepth), so every sub-statement re-fire at the same stack depth matched. Now it tracks the suspend (file, line) and only stops when execution actually crosses to a different source line; function descent/return still work via the depth check (deeper = keep running, shallower = stop). Agent mode (JDWP) is untouched — it already steps by source line at the JVM level.

New native-only spec exercises a tag-mode artifact with a multi-expression line and asserts that each step-over click advances by exactly one source line.

@zspitzer zspitzer merged commit 01e8382 into main May 21, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant