0 votes
by (520 points)
Is there a way of pausing the execution of a passage so that the state of variables may be determined? This would be tremendously useful in debugging.

1 Answer

+1 vote
by (38.6k points)
selected by
 
Best answer

Mostly no, but there is an exception.

You can use the JavaScript alert() method to pause execution while displaying information.  So, for example you could do:

<<set $somevar = $somevar * $othervar>>
<<run alert("1: $somevar = " + $somevar)>>
<<set $somevar = $somevar * $anothervar>>
<<run alert("2: $somevar = " + $somevar)>>

And that would pause execution to show you the value of $somevar at both those points.

However, often a simpler solution it to just temporarily display those values on the page, like this:

<<set $somevar = $somevar * $othervar>>
1: somevar = $somevar
<<set $somevar = $somevar * $anothervar>>
2: somevar = $somevar

And you can tell what the value of $somevar was at both of those points.

If you don't want to display that data on the screen, you could display it in the console instead using the console.log() method like this:

<<set $somevar = $somevar * $othervar>>
<<run console.log("1: $somevar = " + $somevar)>>
<<set $somevar = $somevar * $anothervar>>
<<run console.log("2: $somevar = " + $somevar)>>

(In most browsers you can open the console using the F12 key.)

Those are the three main ways I debug variables like that.

Hope that helps!  :-)

Welcome to Twine Q&A, where you can ask questions and receive answers from other members of the community.

You can also find hints and information on Twine on the official wiki and the old forums archive.

See a spam question? Flag it instead of downvoting. A question flagged enough times will automatically be hidden while moderators review it.
...