Ruby - 调试器
2025-11-08 05:56:25 欧冠世界杯
❮ 上一节
下一节 ❯
Ruby - 调试器
不管一种语言使用起来多么容易,如果它超过几行,它通常会包含一些错误。 为了帮助处理错误,Ruby 的标准发行版包含一个调试器。
要启动 Ruby 调试器,请使用命令行选项 -r debug 加载调试库。 调试器在第一行可执行代码之前停止并要求输入用户命令。
使用语法
这是使用 ruby 调试器的用法语法 −
$ ruby -r debug filename[, ...]
Ruby 调试器命令
这是一个完整的命令列表,您可以在调试程序时使用这些命令。 在这里,没有必要使用完整的关键字来给出命令,[...]里面给出的部分是选项。
序号
命令 & 描述
1
b[reak] [< file| class>:]< line| method>
将断点设置到某个位置。 断点是您要暂停程序执行以进行调试的地方。
2
wat[ch] expression
设置观察点。
3
cat[ch] (exception|off)
将捕获点设置为异常。
4
b[reak]
显示断点和观察点。
5
del[ete] [n]
删除断点。
6
disp[lay] expression
显示 表达式 的值。
7
undisp[lay] [ n]
删除 n 的显示
8
c[ont]
继续执行。
9
s[tep] [ n]
执行下 n 行步入方法。
10
n[ext] [ n]
执行接下来的 n 行,越过方法。
11
w[here]
显示堆栈帧
12
f[rame]
where 的同义词。
13
l[ist][<-| n- m>]
显示从 n 到 m 的源代码行。
14
up [ n]
在堆栈帧中向上移动 n 级。
15
down [ n]
在堆栈帧中向下移动 n 级。
16
fin[ish]
完成当前方法的执行。
17
tr[ace] [on|off]
打开和关闭跟踪模式。
18
q[uit]
退出调试器。
19
v[ar] g[lobal]
显示全局变量。
20
v[ar] l[ocal]
显示局部变量。
21
v[ar] i[instance] object
显示 object 的实例变量
22
v[ar] c[onst] object
显示 object 的常量。
23
m[ethod] i[instance] object
显示 object 的实例方法。
24
m[ethod] class| module
显示类或模块的实例方法。
25
th[read] l[ist]
显示线程。
26
th[read] c[ur[rent]]
显示当前线程。
27
th[read] n
停止指定线程。
28
th[read] stop >
th[read] n 的同义词。
29
th[read] c[ur[rent]] n>
th[read] n 的同义词
30
th[read] resume >
恢复线程 n
31
p expression
评估 表达式
32
h[elp]
显示帮助信息
33
everything else
进行评价。
示例
考虑以下需要调试的文件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 相关工具
❮ 上一节
下一节 ❯