加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

Julia调试

发布时间:2022-12-03 08:01:20 所属栏目:Asp教程 来源:未知
导读: Julia最早出来的时候,是没有调试功能的。本人在最早开始用Julia编程的时候,只能采取最原始的方法,把想看的参数用println显示出来,经常是对着满屏幕的数据找bug,那叫一个抓狂啊!想要有

Julia最早出来的时候,是没有调试功能的。本人在最早开始用Julia编程的时候,只能采取最原始的方法,把想看的参数用println显示出来,经常是对着满屏幕的数据找bug,那叫一个抓狂啊!想要有远超MATLAB的速度,又想要MATLAB那样简单直观的调试,在早期是“鱼与熊掌不可兼得”的。

后来情况有了改善,Julia有了一个支撑调试的包,叫Debug。现在Julia Observer中仍然能检索到这个包,“Prototype interactive debugger for Julia”,介绍上说的很明白,是Julia调试器的一个原型。也不知道是我的电脑问题(尝试了笔记本和台式机两台电脑,Manjaro 和Ubuntu 两个系统,都是一样的错误),还是这个包已经不支持了,现在添加它会报版本问题的错。鉴于现在有更好的调试器包,所以我就不再介绍它了。不过感谢它当年对我毕业工作的支持。

asp.net mvc 调试源码_vs2005 调试asp_asp调试器

现在更好了,Julia有了像MATLAB那样简单的调试方式,可以一边吃鱼,一边吃熊掌了,美滋滋^_^

Julia有了Debugger和Rebugger两个支持调试的包,更进一步,推出了JuliaInterpreter解释器,很好的支持Revise包,Debugger和Rebugger在该解释器的基础上更新完善,有更好的体验。Debugger与Rebugger的区别在于,前者界面REPL风格,而后者界面更加图形界面话风格(虽然也可在REPL中调试)。在以上两个包的支持下,我们已经可以在REPL中完成调试。Juno整合了这些包的功能,最终给我们提供了一个类似MATLAB那样的IDE调试。两种方式各有优缺点,这里我们先来讲一下Juno IDE调试。

如何安装Juno就不多说了,只说一点,在Atom早版本的julia-client中,还看不到集成的Debugger小爬虫图标,把julia-client升级到最新版0.8.9版后就能看到了。Juno调试的官方文档可以参见Juno调试介绍(英文)。下图是我在Ubuntu18.04 LTS系统下Atom中安装的涉及Julia的包及版本。

asp调试器_vs2005 调试asp_asp.net mvc 调试源码

打开Atom Juno,会看到如下所示的界面(和默认稍有不同,可自定义),最左边就是Julia工具栏。

vs2005 调试asp_asp调试器_asp.net mvc 调试源码

vs2005 调试asp_asp调试器_asp.net mvc 调试源码

其中那个像小爬虫的图标是“show debugger pane”,点击该图标以后右边会出现调试功能区。盗用官方文档的图片,示意如下。

asp调试器_vs2005 调试asp_asp.net mvc 调试源码

打开一个文件,这里要注意一点,Juno调试只能用来调试函数,所有的脚本都要写成函数的形式才行,这也就是为什么在官方文档中用一个split函数来介绍用法。

调试最重要的功能是设置断点,在行号的左边空白处单击鼠标即可完成设置断点,此时将会看到一个小红点,同时,在调试功能区的下方会看到增加了一行(以行号结尾),就是这个断点。

想要对该函数进行调试,需要在工作台中启动julia,然后include()编译这个函数,之后有两种方法开始调试,一种是在工作台中输入

Juno.@enter yourfunction

此时,程序会停在第一行。

asp.net mvc 调试源码_vs2005 调试asp_asp调试器

或者输入

Juno.@run yourfunction

此时,程序会停在你设置的第一个断点处。

vs2005 调试asp_asp.net mvc 调试源码_asp调试器

剩下的调试就是大家熟悉的了,通过调试工具栏,可以实现单行运行、单表达式运行(一行中计算多个expression的话会分开执行)、继续执行(到下一个断点)、进入函数、跳出函数等。可以在工作栏中查看变量,也可以在工作台中输入变量名来查看变量或者进行一些命令执行。这样基本上就满足我们的调试需求啦。

在学习的过程中我发现几点问题,跟大家交流一下:

Juno中调试,不需要在脚本中写引用调试包的命令,如using Debugger,Revise等,Juno已经集成了这些,可能在REPL调试的时候需要插入这些,我们以后试一下看看。我在julia-client等包没有更新到最新,且用的julia是1.1.0版本时,在鼠标点击插入断点时,会报错,后面查找原因,找到了解决办法,就是把调试的包都引入进去,用includet()代替include()引入待调试的脚本文件,则可以顺利运行。后面我发现按照我上一步1中配置最新的julia和包后,没有这个问题了。Revise包说支持不退出当前julia调试session就可以修改代码,并执行修改后的代码。然而我发现并不是这样,每次修改了后面的代码,都需要在控制台中关掉当前的julia,重新打开,编译函数,在启动调试。这一点不好,因为在Juno控制台中重启julia速度比较慢,就不如在终端REPL中执行快了。不知道是我哪里设置的不对?以后再慢慢发现吧。所以,在REPL中调试兴许更高效。有时候调试让程序执行下一行,会跑好几行asp调试器,不过这种情况都是出现在我预定义变量的时候。

基本上掌握了这些,就可以在Juno IDE中正常调试了。以后有时间我们再学习一下如何在REPL中调试。希望我的分享能帮助大家提高Julia开发效率。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!