- Ruby基础知识
 - Ruby - 主页
 - Ruby - 概述
 - Ruby - 环境设置
 - Ruby - 语法
 - Ruby - 类和对象
 - Ruby - 变量
 - Ruby - 运算符
 - Ruby - 评论
 - Ruby - IF...ELSE
 - Ruby - 循环
 - Ruby - 方法
 - Ruby - 块
 - Ruby - 模块
 - Ruby - 字符串
 - Ruby - 数组
 - Ruby - 哈希
 - Ruby - 日期和时间
 - Ruby - 范围
 - Ruby - 迭代器
 - Ruby - 文件 I/O
 - Ruby - 例外
 
Ruby - 调试器
无论一种语言使用起来多么容易,如果它的长度超过几行,它通常会包含一些错误。为了帮助处理错误,Ruby 的标准发行版包含一个调试器。
为了启动 Ruby 调试器,请使用命令行选项-r debug加载调试库。调试器在第一行可执行代码之前停止并要求输入用户命令。
使用语法
以下是使用 ruby 调试器的语法 -
$ ruby -r debug filename[, ...]
Ruby 调试器命令
以下是完整的命令列表,您可以在调试程序时使用它们。这里,不必使用完整的关键字来给出命令,[...]内给出的部分是选项。
| 先生。 | 命令与说明 | 
|---|---|
| 1 | b[reak] [< 文件| 类>:]<行| 方法> 将断点设置到某个位置。断点是为了调试目的而想要暂停程序执行的地方。  | 
| 2 | wat[ch] 表达式 设置观察点。  | 
| 3 | cat[ch](例外|关闭) 将捕获点设置为异常。  | 
| 4 | 
 休息] 显示断点和观察点。  | 
| 5 | 删除[ete] [n] 删除断点。  | 
| 6 | 显示[放置]表达式 显示表达式的值。  | 
| 7 | 取消显示[放置] [ n] 删除 n 的显示  | 
| 8 | 续[续] 继续执行。  | 
| 9 | s[步数] [n] 执行接下来的 n 行单步执行方法。  | 
| 10 | n[分机] [n] 执行接下来的 n 行,逐步跳过方法。  | 
| 11 | 在哪里] 显示堆栈帧  | 
| 12 | 框架] 哪里的同义词。  | 
| 13 | l[ist][<-| n-m>] 显示从 n 到 m 的源代码行。  | 
| 14 | 向上 [n] 在堆栈帧中向上移动 n 层。  | 
| 15 | 向下 [n] 在堆栈帧中向下移动 n 层。  | 
| 16 | 结束] 完成当前方法的执行。  | 
| 17 号 | tr[ace] [开|关] 打开和关闭跟踪模式。  | 
| 18 | 辞职] 退出调试器。  | 
| 19 | v[ar] g[全局] 显示全局变量。  | 
| 20 | v[ar] l[局部] 显示局部变量。  | 
| 21 | v[ar] i[实例]对象 显示对象的实例变量  | 
| 22 | v[ar] c[onst]对象 显示object的常量。  | 
| 23 | m[方法] i[实例]对象 显示object的实例方法。  | 
| 24 | m[方法]类| 模块 显示类或模块的实例方法。  | 
| 25 | th[读] l[ist] 显示线程。  | 
| 26 | th[读] c[ur[租金]] 显示当前线程。  | 
| 27 | th[读] n 停止指定线程。  | 
| 28 | th[阅读] 停止 > th[read] n 的同义词。  | 
| 29 | th[读] c[ur[租金]] n> th[读] n 的同义词  | 
| 30 | th[阅读] 简历 > 恢复线程n  | 
| 31 | p表达式 评估表达式  | 
| 32 | 帮助] 显示帮助消息  | 
| 33 | 其他一切 评估。  | 
例子
考虑以下文件hello.rb,需要对其进行调试 -
#!/usr/bin/env ruby
class Hello
   def initialize( hello )
      @hello = hello
   end
   def hello
      @hello
   end
end
salute = Hello.new( "Hello, Mac!" )
puts salute.hello
这是捕获的一个交互式会话。给定的命令以粗体书写 -
[root@ruby]# ruby -r debug hello.rb Debug.rb Emacs support available. hello.rb:3:class Hello (rdb:1) v l salute => nil (rdb:1) b 10 Set breakpoint 1 at hello.rb:10 (rdb:1) c Hello, Mac! [root@ruby]#