» VL: One frame at a time
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

VL: One frame at a time

Newsflash!

Here are two new little features we want to make sure you're aware of. Not completely finished but already helpful:

StepByStep

Press F6 to pause and step through your patch one frame at a time. Press F5 to continue running the patch.
F6, F6, F6, F6, F5

Note how the Quad (topleft) indicates run/pause. Tremendous you say? Indeed, but beware the following caveats for now:

  • this works only for vl, so if you have parts of your patch in vvvv, those will still continue to run as usual!
  • tooltips don't work in this mode yet, so you'll need IOBoxes wherever you want to inspect values
  • no stepping through slices of loops

Still you'll see that in cases where you're looking for a logical problem in your patch it is already useful to be able to step through its execution one frame at a time to better understand how it is evolving.

JumpToError

Set RuntimePauseOnError to TRUE in the settings in case you want to have the patch paused in case an error occured.
Pink: the node that threw the runtime-error.
Bright: the call stack, leading up to the error.
Dark: nodes not executed.

This can be useful when you're on a debugging spree and expect an error to happen at some point. Activate this option to be brought to the point where the error occurred, the moment it happened. Saves you some navigation and highlights the nodes involved leading up to the error. Again press F6 to step or try F5 to get the patch running again after you solved the problem.

Caveat: Look closely, the error message in the tooltip actually belongs to the Add of the Dictionary. The reason for that is code-optimization which sometimes leads to the error-indicator being one node off. A setting to disable code-optimization is pending..


As mentioned, both features are not finished but are a first step into the direction of better debugging support. Still more to come..

joreg, Tuesday, Dec 19th 2017 Digg | Tweet | Delicious 6 comments  
microdee 19/12/2017 - 23:29

it's nice to see VL getting this feature. this will ease debugging a lot!

velcrome 20/12/2017 - 00:46

Tremendous appetizer, I say. Made me hungy for the main course F10 alongside F11. Maybe F9 for desert?

tobyk 15/05/2018 - 18:35

This works great! I'd love a 'break' node I can use to automatically pause when some condition is met.

tonfilm 15/05/2018 - 21:17

@tobyk you can use the Throw node to throw an exception to stop the runtime.

tonfilm 16/05/2018 - 17:11

@tobyk we discussed this internally and the question is whether you want to stop calculation of the frame exactly at the place where the node sits, or do you want to complete the frame and only stop the calculation of the next frame.

tobyk 16/05/2018 - 17:58

@tonfilm
Thanks for this, as usual you guys are one 'step' ahead. ahahahahahahaha

If there's an option i'd prefer the break/throw node to stop exactly where the node sits. If I want it to complete the frame I could patch that node such that it should get executed last. I think.

  • 1

anonymous user login

Shoutbox

~20h ago

CeeYaa: https://experiments.withgoogle.com/collection/ai/move-mirror/view Skeleton Tracking with my Browser - cool AI stuff

~2d ago

woei: everyone who likes or has to work with 3d models: something you might wanna try scenegraph

~4d ago

tonfilm: Saving and loading your own data types to disk was never easier: vl-serialization #vvvv #vl #dotNet #visualprogramming

~6d ago

stulloyd: @dominikKoller my little brother works for them.

~11d ago

vasilis: @readme I already did this...but when I reopen my patch and make some changes I press save all..and then the same again. It opens 2

~11d ago

readme: vasilis, Alt+R in your vvvv instance, delete it from vvvv root, save. Otherwise vvvv loads up the patch by default.

~11d ago

vasilis: And even if I go in the root patch and delete them. when i save my patch again it duplicates.