Ruby调试器,用于调试ruby脚本代码。
ruby档案中还有供Emacs使用的接口ruby/misc/rubydb[23]x.el。
rubydb2x.el适用于Emacs 19.2x 以前版本,而rubydb3x.el则对应于Emacs 19.3x以后的版本。
$ ruby -rdebug foo.rb
而在Emacs中则为
M-x load-library rubydb3x.el M-x rubydb
以下就是调试器中可用的命令名和用法一览。每条命令名都有简写形式。
若输入了下列命令以外的内容时,将被当作ruby表达式来处理。
设置断点(break point)。若省略参数时,则显示设置的断点。
设置的断点的格式为 程序文件名:位置 或者 类名:方法名。 位置是指文件中的行号或方法名。 若省略文件名:,则看作是指定了当前运行中的文件。
该命令简写为 b。
设置Catch Point,一旦发生异常时调试器将停在Catch Point的地方。若省略参数时,将显示设定的Catch Point。
若实际出现的异常是<an Exception>的子类的话,调试器会停止运行。StandardError中设定了默认的Catch Point。
若将<an Exception>设为off的话,即使发生了异常,调试器也不会停止运行。
该命令简写为 cat。
设置Watch Point,一旦表达式 <expression> 的值发生变化时,调试器将停在Watch Point的地方。
该命令简写为 wat。
删除指定的断点。若省略参数时,将删除所有的断点。
该命令简写为 del。
设置display表达式,每当处理过程停止时都会计算<expression>。省略参数时,将显示所有的display表达式。
该命令简写为 disp。
删除指定的display表达式。若省略参数时,将删除所有的display表达式。
该命令简写为 undisp。
继续进行处理过程,直到脚本结束或遇到下一个断点。
该命令简写为 c。
一行一行地进行处理。若指定了参数的话,就只处理指定行数的内容。它会进入方法内部。
该命令简写为 s。
一行一行地进行处理。若指定了参数的话,就只处理指定行数的内容。它与step [nnn]的区别在于,遇到方法调用时它不会进入方法的内部。
该命令简写为 n。
显示frame的堆栈和当前的frame位置。
该命令简写为 w 或 f。
显示脚本。若参数为`-'则显示上一行。若为nn-mm形式,则显示指定范围行的脚本。
该命令简写为 l。
转移到上级frame。
转移到下级frame。
继续进行处理过程,直到转移到外侧frame为止。
该命令简写为 fin。
更改跟踪模式的设定。若将跟踪模式设为on的话,在以后的运行过程中将会显示方法调用关系。若省略参数时,则显示当前的模式。
该命令简写为 tr。
中断脚本,终止调试器的运行。
该命令简写为 q。
分别表示全局变量、局部变量、对象<object>的实例变量、<object>的常数。
该命令简写为 v。
分别表示对象<object>的实例方法、类方法或模块方法。
该命令简写为 m。
线程一览表。
该命令简写为 th。
显示当前线程。
将运行线程切换为<nnn>。
挂起<nnn>线程。
重启<nnn>线程。
显示ruby表达式<expression>的结果。
调试命令一览表。
该命令简写为 h。