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]#
ruby_ Associated_tools.htm