- 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]#