请小心上述代码中的漏洞(bug),我只证明了代码是正确的,而没有尝试过。——Donald Knuth,计算机科学先驱
程序员经常会发现他们在调试程序上花费的时间比编写程序本身花的时间还要长,所以好的调试技巧是无价的。
这里介绍R语言基本调试方法。R语言调试工具由浏览器(browser)构成,它可以使我们的程序逐行运行,可以调用debug()或者browser()函数打开浏览器。
浏览器调试命令
进入调试浏览器时,命令提示符从“>”变为“Browse[d]>”(“d”表示函数调用链深度)
n(next):执行下一行,然后暂停,直接键入“Enter”一样;
c(continue):如果在循环中,会执行本次循环剩下所有语句,然后进入下一次循环,到该位置继续暂停;
键入变量名:查看变量值,若与浏览器变量同名,需用print()打印出来看,下面有例子,旁边变量区也可以看;
where:显示到达当前位置过程中函数的调用序列;
Q:该命令会退出浏览器,返回正常交互模式。
debug()
debug(f)函数可以在函数f()入口处进入浏览器而处于调试状态。
比如这个例子:
browser()
与debug(f)函数在函数f()入口处进入浏览器而处于调试状态不同,browser()可以插在函数中任一行,程序只要运行到该行,就进入调试状态即浏览器会被打开,直到程序结束。
假如我们想观察这个累加运算过程变量i、s的变化,可以把browser()加到循环中,每循环一次,暂停一次,便于观察。第一次调试第十次调试结束
觉得不错,记得点赞哦,也可以分享、让更多的人看到,点击【阅读原文】有惊喜!
![640?wx_fmt=png](https://img-blog.csdnimg.cn/img_convert/ae424c35ac5c8d9895151316c7890f48.png)
![0?wx_fmt=gif](https://img-blog.csdnimg.cn/img_convert/01d67c73a99bc310ca52b8506eaf7aa4.png)
![1710215020.jpg 640?wx_fmt=jpeg](https://img-blog.csdnimg.cn/img_convert/fe8d2d7f6e40149ec87af2927150e677.png)