Jmol/debugging

From Proteopedia

Revision as of 21:07, 11 April 2021 by Karsten Theis (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Debugging refers to finding and fixing errors in programs or scripts. Jmol has an extensive scripting language that implements a dialect of javascript. Because this dialect is not completely compatible with javascript, it is not possible to debug Jmol scripts using debuggers made for javascript.


Contents

General debugging techniques

There are multiple ways to insert breakpoints into Jmol scripts, pausing the script to verify the script progresses to a certain point, and allowing you to check the state of variables at this point. The "pause" command pauses the script and gives control to you until you type "resume" in the console. The "prompt" command, given without parameters, opens a pop-up screen with the stack trace of the script.

There are a variety of commands described under "set (debugging)" in the manual that help with debugging and analyzing program crashes. Of course, it is also possible to add strategic "print" statements to the script but the techniques described above are more flexible because they pause the script or give you a chance of a post-mortem analysis.

Techniques specific to the Jmol app

You can open the Jmol script editor to step through a script. If you are in an endless loop, you can pause the script to see where you are stuck. After a script crashes, you can open the Java console to see which Java exception was raised.

Techniques specific to JSmol run in a browser

You can use the JSmol Console to query variable values as

javascript alert(javascript-expression)

or

javascript alert(jmolEvaluate(jmol-expression))

Acknowledgements

Some of these techniques were suggested by Bob Hanson and Eric Martz in response to a query on the Jmol listserv.

Proteopedia Page Contributors and Editors (what is this?)

Eric Martz, Karsten Theis

Personal tools