Next: , Previous: Exception handling, Up: Top



9 调试

代码调试通常是一门艺术。 R 提供了多个工具用于帮助 用户找到代码中的问题。这些工具会使代码在特定的地方暂停 执行,并且可以跟踪计算过程的当前状态。

大多数调试都是通过 browserdebug 来实现的。 这两个函数依赖的内在机制是一样的,二者都给用户提供了特别的提示。 任何命令都可以在提示下键入。该命令的求值环境 是当前的激活环境。 这使得你可以检测任何变量等的当前状态。

R里面有五个不同解释方式的特殊命令。它们是

<RET>
在函数调试时,去下一个语句处。如果browser 被调用,表示继续执行。
c
cont
继续执行。
n
执行函数中的下一条语句。这和 browser 作用类似。
where
显示调用堆栈
Q
挂起执行,立即跳到顶层。

如果一个局部变量的名字和上面列出命令的名字一样,可以用 get 访问它的值。把局部变量的名字(要加引号) 作为参数调用get 将返回它在当前环境中的值。 调试器仅允许对解释型表达式的访问。如果一个函数调用 外部语言(如 C),那么调试器不能访问外部语言的语句。 执行控制将会在 R 里面求值的下一个语句处暂停。 符号调试器如 gdb 可用来调试编译后的代码。