Debugging NetLogo调试

Debugging NetLogo调试,debugging,netlogo,Debugging,Netlogo,NetLogo的交互性使调试变得容易,但我还没有找到任何工具可用于设置断点和单步执行代码。 如果有,请指导我。或者,我可以用当前可用的设置实现同样的效果。如果存在这样的工具,我还不知道。对于调试,我使用有意义的打印语句。首先,我将一个开关作为一个全局参数来设置调试模式的开和关,然后我向每个方法添加一条语句,以打印哪个方法更新哪个变量以及它们被调用的顺序(如果调试模式为开) 我还使用了探查器扩展,它显示了每个方法被调用的次数,以及哪一个是最耗时的 另一种可能性是在NetLogo Web生成时在任何

NetLogo的交互性使调试变得容易,但我还没有找到任何工具可用于设置断点和单步执行代码。
如果有,请指导我。或者,我可以用当前可用的设置实现同样的效果。

如果存在这样的工具,我还不知道。对于调试,我使用有意义的打印语句。首先,我将一个开关作为一个全局参数来设置调试模式的开和关,然后我向每个方法添加一条语句,以打印哪个方法更新哪个变量以及它们被调用的顺序(如果调试模式为开)


我还使用了探查器扩展,它显示了每个方法被调用的次数,以及哪一个是最耗时的

另一种可能性是在NetLogo Web生成时在任何现代浏览器中进行调试。通过这种方式,您可以在NetLogo代码中设置断点,并在NetLogo代码中使用Chrome或FireFox或IE11的开发工具。

NetLogo就是要将代码保持在一个位置。当我在2D或3D中运行模拟时,我通常知道我的整个系统在时间点X将产生什么。因此,当我进行测试时,我通常围绕我跟踪的变量(如蛋白质信号的数量等)对我的代理“海龟”进行颜色编码


它可以很简单,当你想知道的变量超过某个阈值时,将它们变成红色;当变量低于某个阈值时,将它们变成蓝色。或者你可以加入另一种颜色,可能是绿色,这样你就可以跟踪感兴趣的海龟何时在“最佳”范围内。

目前不存在。尽管如此,您仍然可以使用上面的选项之一,或者您可以查看
用户消息
(),它将弹出一个对话框。这也将阻止该步骤的执行,尽管没有为您提供跳转到下一行的机制,但对我来说,这个解决方案被证明是最好的

我将
用户消息
检查
一起用作NetLogo的调试工具。下面介绍如何使用它们来识别错误的原因

  • 使用
    inspect
    的原因是,当我们不确定到底哪里出错时,检查对象的所有属性
  • 使用
    用户消息
    打印一些指令,输出一些结果并停止程序

在我发现打印语句之前,我发现Netlogo有点难以调试

我基本上是针对导致问题的模块,在关键块中添加print语句来检查变量的状态。我发现这是一种有效的调试方法


我真希望文档更全面,有更多的代码示例。也许一些好心的撒玛利亚人会把它当作一个项目来处理。

这似乎是个好办法。“我仍在寻找更有效的方法。”阿披舍克巴哈这是个好问题。我希望我也能找到一种更有效的方法:)NetLogo中有一个。要在特定行停止执行,我使用
错误“stop here!”
技巧。Great@bergant我不知道:)这是使用全局参数的一种非常创新的方法。从现在起我要用这个!