NetLogo Debugging
NetLogo Debugging
NetLogo being interactive makes debugging easy, but I yet to find any tools available for setting breakpoints and stepping through code.
Please guide me if such exist. Or I can achieve the same with the current setup available.
5 Answers
5
I am not aware of such a tool if one exists. For debugging I use meaningful print statements. First I make a switch as a global parameter to set the debug mode on and off, then I add a statement to each method that prints which method updates which variable and in which order they were called (if debug mode is on).
I also use profiler extension which shows how many times each method was called and which one is the most or least time consuming one.
@AbhishekBhatia Its a good question. I hope I find a more efficient approach too :)
– Marzy
Aug 25 '15 at 14:53
There is a logging tool in NetLogo. To stop executing at specific line I use
error "Stop here!"
trick.– bergant
Aug 25 '15 at 15:03
error "Stop here!"
Great @bergant I didnt know about that :)
– Marzy
Aug 25 '15 at 15:09
Not existing currently. Still, you can use one of the alternatives from above or you might take a look at user-message
(https://ccl.northwestern.edu/netlogo/docs/dictionary.html#user-message), which will pop up a dialog. This will also block the execution at that step, although not providing you with a jump-to-next-line mechanism, for me this solution proved to be the best.
user-message
Another possibility is to do the debugging in any modern browser if/when NetLogo Web produces source maps. This way one can set breakpoints in the NetLogo code and use Chrome or FireFox or IE11's developer tools on the NetLogo code.
I have used user-message
and inspect
together as the debugging tool for NetLogo. Here is a video demo on how to use them to identify the cause of an error.
user-message
inspect
inspect
user-message
NetLogo is all about keeping the code in one spot. When I run a simulation in 2D or 3D, I usually have an idea what my whole system is going to produce at timepoint X. So when I'm testing, I usually color code my agents, the "turtles", around a variable I'm tracking (like number of protein signals etc.)
It can be as simple as making them RED when the variable your wondering about is over a threshold or BLUE when under. Or you can throw in another color, maybe GREEN, so that you track when the turtles of interest fall within the "optimal" range.
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy
That seems to be good approach. Am still looking for more efficient ones.
– Abhishek Bhatia
Aug 25 '15 at 14:49