Norman Matloff 和PeteSalzman在其著作《TheArt of Debugging, withGDB,DDD,Eclipse》中曾说过,确认原则是调试的本质。程序员编写程序是为实现特定目的,而一个程序可以由许多目的组成,调试是确认某些目的是否达到了,如果未能达到目的,那么便可通过在调试中查看变量,发现问题症结,进而解决问题。
在R中进行debug有几种不同方式,你如果使用诸如Rstudio等图形软件,调试代码很容易,所有的调试都在图形界面下完成,你只需要根据需求在图形界面下点击相应选项来进行断点设置、单步执行、查看变量等操作,查找问题症结。但如果在命令行界面下调试R代码,那就得要借助于一些特别的调试工具。R的基础软件包base中包含了一些基本的调试工具,当然CRAN中也有一些其它优秀的调试工具。
对于一般用户来说,掌握base中的基本调试工具就能满足大部分需求,下面介绍R基本软件包base中的调试工具的使用方法(也包含setBreakpoint(),其位于utils包中)。
由于在启动和关闭调试中需要用到部分调试命令,这里就先介绍进入调试模式后需要用到的一些基本命令。
1.基本调试命令
在进入dedbug调试状态后,命令提示符从>变为Browse[d]>(d表示函数调用链的深度),可以通过一些基本的命令来进行控制:
- n(表示next): 告诉R执行下一行代码,并且执行完后马上暂停,实际就是一行一行地执行代码。相当于C语言开发工具Turbo C中的trace into。
- c(表示continue):