Skip to content

Implement step in and step out#1431

Draft
shanedell wants to merge 1 commit intoapache:mainfrom
shanedell:implement-step-in-and-out
Draft

Implement step in and step out#1431
shanedell wants to merge 1 commit intoapache:mainfrom
shanedell:implement-step-in-and-out

Conversation

@shanedell
Copy link
Contributor

Description

Implement step in and step out

  • Renamed step to stepOver to make it more specific what is going on.
  • Implemented step in and step out logic.
  • Made stepIn do what step, now stepOver, was doing.

Closes #5
Closes #1089

Wiki

  • I have determined that no documentation updates are needed for these changes
  • I have added following documentation for these changes

Review Instructions including Screenshots

Ensure that stepOver, stepIn and stepOut all work when clicked. Also ensure they do the proper actions

@shanedell shanedell added this to the 1.4.2 milestone Sep 23, 2025
@shanedell shanedell self-assigned this Sep 23, 2025
@shanedell shanedell added the debugger Issues related to the DFDL debugger capability label Sep 23, 2025
@shanedell
Copy link
Contributor Author

@stevedlawrence and/or @mbeckerle would you mind testing this update out? I am not fully confident if all the step functions behave as they should and would appreciate any feedback or assistance you can provide me.

@shanedell shanedell force-pushed the implement-step-in-and-out branch from cc4a3e4 to 08f0cc8 Compare September 23, 2025 19:30
@stevedlawrence
Copy link
Member

I'll try to take a look this week. Can you describe what the intended behavior of stepIn, stepOut, and stepOver is? I know there's been discussions about it but I'm not sure what was finally decided on and want to make sure I'm on the same page when playing around with it.

@shanedell
Copy link
Contributor Author

shanedell commented Sep 23, 2025

I basically tried to do what you had stated before in an email. I have it pasted here in issue #5. But basically:

"step-in" would just be the current behavior and pause at every hook

"step" would capture the current top of the stack and cause all hooks to do
nothing until the endElement hook sees that element

"step-out" would capture the second element in the stack (i.e. the parent of the
current element) and cause all hooks to do nothing until the end element for
that element is seen

I am not sure if there was anything formally decided, I mostly went with you had stated since you would know better how it could be done or what was possible with Daffoidl.

Copy link
Collaborator

@lrbarber lrbarber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my initial testing, there seems to be some disconnect between the displayed current schema location and the contents of the infoset. The location indicator seems to jump ahead a step or two before the infoset is updated.
The step into function seems to sometimes jump ahead as if doing a step over or step out.
The step out seems to be delayed by a step or two, but then doesn't quite exit the current element.

@hdalsania hdalsania moved this to In Progress in daffodil-vscode v1.5.0 Sep 24, 2025
@shanedell
Copy link
Contributor Author

@stevedlawrence If you would have time this week could you possibly take a look at this? I would value your feedback greatly on where this is at

Copy link
Contributor

@mbeckerle mbeckerle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+0 I guess I'm going to have to read @arosien 's book on Cats Effect and really study it to be able to grok this code. I can't understand this well enough to review it effectively.

@hdalsania hdalsania modified the milestones: 1.5.0, 1.6.0 Oct 21, 2025
@hdalsania hdalsania moved this from Todo to In Progress in daffodil-vscode v1.6.0 Jan 6, 2026
@shanedell shanedell force-pushed the implement-step-in-and-out branch from 08f0cc8 to ffaea68 Compare January 16, 2026 19:12
@shanedell shanedell requested a review from lrbarber January 16, 2026 19:27
@shanedell
Copy link
Contributor Author

@lrbarber Can you give this another look when you have a chance and provide any feedback on what you are seeing? Meaning is step in, step out and step over behaving how you would expect? If not can you describe what you are expecting versus what is actually happening? Thank you

@lrbarber
Copy link
Collaborator

lrbarber commented Feb 2, 2026

The gif schema looks to be a good example to use while testing step-in/out/over.

https://github.com/DFDLSchemas/GIF/blob/master/src/main/resources/com/mitre/gif/xsd/gif.dfdl.xsd

...and here's a sample gif file to parse:
charging-battery-animated-gif

- Implemented step over and step out logic.
- Step in is currently doing the proper thing, fixed in a different PR.

Closes #5
Closes apache#1089
@shanedell shanedell force-pushed the implement-step-in-and-out branch from ffaea68 to 28a67b6 Compare February 6, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debugger Issues related to the DFDL debugger capability

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Step Into debugger option fails Handle step in/out commands

5 participants