別のキーワード
ライブラリ
- ビルトイン (47)
- debug (1)
- etc (21)
-
irb
/ context (2) -
irb
/ ext / tracer (3) -
irb
/ frame (2) - objspace (5)
- optparse (2)
- rake (2)
-
rubygems
/ config _ file (3) - tracer (15)
-
webrick
/ httpresponse (1)
クラス
- Exception (3)
- Fiber (1)
-
Gem
:: ConfigFile (3) -
IRB
:: Context (5) -
IRB
:: Frame (1) - Object (1)
-
OptionParser
:: ParseError (2) -
RubyVM
:: InstructionSequence (7) - Thread (6)
-
Thread
:: Backtrace :: Location (7) - TracePoint (16)
- Tracer (16)
-
WEBrick
:: HTTPResponse (1)
モジュール
- Etc (21)
- Kernel (5)
- ObjectSpace (5)
- Rake (2)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) -
DEFAULT
_ BACKTRACE (1) -
EVENT
_ SYMBOL (1) - Frame (1)
- Location (1)
-
NEWS for Ruby 2
. 0 . 0 (1) -
NEWS for Ruby 2
. 1 . 0 (1) -
NEWS for Ruby 2
. 5 . 0 (1) -
NEWS for Ruby 2
. 7 . 0 (1) - Ruby用語集 (1)
-
SC
_ 2 _ C _ BIND (1) -
SC
_ 2 _ PBS (1) -
SC
_ 2 _ PBS _ ACCOUNTING (1) -
SC
_ 2 _ PBS _ CHECKPOINT (1) -
SC
_ 2 _ PBS _ LOCATE (1) -
SC
_ 2 _ PBS _ MESSAGE (1) -
SC
_ 2 _ PBS _ TRACK (1) -
SC
_ BARRIERS (1) -
SC
_ BC _ BASE _ MAX (1) -
SC
_ BC _ DIM _ MAX (1) -
SC
_ BC _ SCALE _ MAX (1) -
SC
_ BC _ STRING _ MAX (1) -
SC
_ JOB _ CONTROL (1) -
SC
_ SHARED _ MEMORY _ OBJECTS (1) -
SC
_ THREAD _ ROBUST _ PRIO _ INHERIT (1) -
SC
_ THREAD _ ROBUST _ PRIO _ PROTECT (1) -
SC
_ TYPED _ MEMORY _ OBJECTS (1) -
SC
_ V6 _ ILP32 _ OFFBIG (1) -
SC
_ V6 _ LPBIG _ OFFBIG (1) -
SC
_ V7 _ ILP32 _ OFFBIG (1) -
SC
_ V7 _ LPBIG _ OFFBIG (1) -
absolute
_ path (1) -
add
_ filter (1) -
add
_ trace _ func (1) -
allocation
_ sourcefile (1) -
allocation
_ sourceline (1) - application (1)
- application= (1)
-
back
_ trace _ limit (1) -
back
_ trace _ limit= (1) - backtrace (4)
- backtrace= (1)
-
backtrace
_ locations (3) -
base
_ label (1) - binding (1)
-
callee
_ id (1) -
caller
_ locations (2) -
compile
_ option (1) -
compile
_ option= (1) - debug (1)
- disable (2)
- disasm (2)
- disassemble (2)
-
display
_ c _ call (1) -
display
_ c _ call? (1) -
display
_ process _ id (1) -
display
_ process _ id? (1) -
display
_ thread _ id (1) -
display
_ thread _ id? (1) - enable (2)
- enabled? (1)
- event (1)
- fail (1)
-
filter
_ backtrace (1) - freeze (1)
-
get
_ backtrace (1) - inspect (1)
-
instruction
_ sequence (1) - irb (1)
-
irb
/ ext / tracer (1) - label (1)
- lineno (1)
-
make
_ backtrace (1) -
method
_ id (1) - new (1)
- on (2)
- parameters (1)
- path (1)
- raise (3)
-
rb
_ backtrace (1) -
rb
_ f _ trace _ var (1) -
rb
_ f _ untrace _ var (1) -
rb
_ trace _ eval (1) -
remove
_ trace (1) -
return
_ value (1) -
ruby 1
. 8 . 4 feature (1) -
ruby 1
. 9 feature (1) - self (1)
-
set
_ backtrace (3) -
set
_ error (1) -
set
_ trace _ func (2) - stat (1)
- stdout (1)
-
to
_ a (1) -
to
_ s (1) -
trace
_ en (1) -
trace
_ func (3) -
trace
_ object _ allocations (1) -
trace
_ object _ allocations _ start (1) -
trace
_ object _ allocations _ stop (1) -
untrace
_ var (1) -
use
_ tracer (1) -
use
_ tracer= (1) -
use
_ tracer? (1) - verbose (1)
- verbose= (1)
- verbose? (1)
検索結果
先頭5件
-
static VALUE backtrace(int lev) (96601.0)
-
-
TracePoint
. trace(*events) {|obj| . . . } -> TracePoint (63958.0) -
新しい TracePoint オブジェクトを作成して自動的にトレースを開始し ます。TracePoint.new のコンビニエンスメソッドです。
新しい TracePoint オブジェクトを作成して自動的にトレースを開始し
ます。TracePoint.new のコンビニエンスメソッドです。
@param events トレースするイベントを String か Symbol で任
意の数指定します。指定できる値については
TracePoint.new を参照してください。
//emlist[例][ruby]{
trace = TracePoint.trace(:call) { |tp| [tp.lineno, tp.event] }
# => #<TracePoint:0x00... -
ObjectSpace
. # trace _ object _ allocations _ stop -> nil (45640.0) -
オブジェクト割り当てのトレースを終了します。
オブジェクト割り当てのトレースを終了します。
トレースを終了する為には、ObjectSpace.#trace_object_allocations_startを呼んだ回数分だけこのメソッドを呼ぶ必要があります。
@see ObjectSpace.#trace_object_allocations_start -
ObjectSpace
. # trace _ object _ allocations { . . . } (45622.0) -
与えられたブロック内でオブジェクトのトレースを行います。
与えられたブロック内でオブジェクトのトレースを行います。
//emlist[例][ruby]{
require 'objspace'
class C
include ObjectSpace
def foo
trace_object_allocations do
obj = Object.new
p "#{allocation_sourcefile(obj)}:#{allocation_sourceline(obj)}"
end
end
end
C.new.foo #=> "objtrace.rb:8"
//} -
ObjectSpace
. # trace _ object _ allocations _ start -> nil (45622.0) -
オブジェクト割り当てのトレースを開始します。
オブジェクト割り当てのトレースを開始します。
@see ObjectSpace.#trace_object_allocations_stop -
Exception
# backtrace _ locations -> [Thread :: Backtrace :: Location] (37201.0) -
バックトレース情報を返します。Exception#backtraceに似ていますが、 Thread::Backtrace::Location の配列を返す点が異なります。
バックトレース情報を返します。Exception#backtraceに似ていますが、
Thread::Backtrace::Location の配列を返す点が異なります。
現状では Exception#set_backtrace によって戻り値が変化する事はあり
ません。
//emlist[例: test.rb][ruby]{
require "date"
def check_long_month(month)
return if Date.new(2000, month, -1).day == 31
raise "#{month} is not long month"
end
... -
Gem
:: ConfigFile # backtrace=(backtrace) (37201.0) -
エラー発生時にバックトレースを出力するかどうか設定します。
エラー発生時にバックトレースを出力するかどうか設定します。
@param backtrace 真を指定するとエラー発生時にバックトレースを出力するようになります。 -
Thread
# backtrace _ locations(range) -> [Thread :: Backtrace :: Location] | nil (37201.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得するフレームの個数を指定します。
@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。
Kernel.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。
//emlist[例][ruby]... -
Thread
# backtrace _ locations(start = 0 , length = nil) -> [Thread :: Backtrace :: Location] | nil (37201.0) -
スレッドの現在のバックトレースを Thread::Backtrace::Location の配 列で返します。
スレッドの現在のバックトレースを Thread::Backtrace::Location の配
列で返します。
引数で指定した値が範囲外の場合、スレッドがすでに終了している場合は nil
を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得するフレームの個数を指定します。
@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。
Kernel.#caller_locations と似ていますが、本メソッドは self に限定
した情報を返します。
//emlist[例][ruby]... -
IRB
:: Context # back _ trace _ limit=(val) (36640.0) -
エラー発生時のバックトレース表示の先頭、末尾の上限の行数をそれぞれ val 行に設定します。
エラー発生時のバックトレース表示の先頭、末尾の上限の行数をそれぞれ val
行に設定します。
.irbrc ファイル中で IRB.conf[:BACK_TRACE_LIMIT] を設定する事でも同様の
操作が行えます。
@param val バックトレース表示の先頭、末尾の上限を Integer で指定
します。
@see IRB::Context#back_trace_limit -
IRB
:: Context # back _ trace _ limit -> Integer (36622.0) -
エラー発生時のバックトレース表示の先頭、末尾の上限の行数を返します。
エラー発生時のバックトレース表示の先頭、末尾の上限の行数を返します。
デフォルト値は 16 です。
@see IRB::Context#back_trace_limit= -
Exception
# backtrace -> [String] (36601.0) -
バックトレース情報を返します。
バックトレース情報を返します。
デフォルトでは
* "#{sourcefile}:#{sourceline}:in `#{method}'"
(メソッド内の場合)
* "#{sourcefile}:#{sourceline}"
(トップレベルの場合)
という形式の String の配列です。
//emlist[例][ruby]{
def methd
raise
end
begin
methd
rescue => e
p e.backtrace
end
#=> ["filename.rb:2:in `methd'", "filename.rb:6... -
Exception
# set _ backtrace(errinfo) -> nil | String | [String] (36601.0) -
バックトレース情報に errinfo を設定し、設定されたバックトレース 情報を返します。
バックトレース情報に errinfo を設定し、設定されたバックトレース
情報を返します。
@param errinfo nil、String あるいは String の配列のいずれかを指定します。
//emlist[例][ruby]{
begin
begin
raise "inner"
rescue
raise "outer"
end
rescue
$!.backtrace # => ["/path/to/test.rb:5:in `rescue in <main>'", "/path/to/test.rb:2:in `<main>'"]
$!.se... -
Gem
:: ConfigFile # backtrace -> bool (36601.0) -
エラー発生時にバックトレースを出力するかどうかを返します。
エラー発生時にバックトレースを出力するかどうかを返します。
真の場合はバックトレースを出力します。そうでない場合はバックトレースを出力しません。 -
Gem
:: ConfigFile :: DEFAULT _ BACKTRACE -> false (36601.0) -
バックトレースが表示されるかどうかのデフォルト値です。
バックトレースが表示されるかどうかのデフォルト値です。 -
OptionParser
:: ParseError # set _ backtrace(array) -> [String] (36601.0) -
自身に array で指定したバックトレースを設定します。
自身に array で指定したバックトレースを設定します。
@param array バックトレースを文字列の配列で指定します。
@return array を返します。 -
OptionParser
:: ParseError . filter _ backtrace(array) -> [String] (36601.0) -
array で指定されたバックトレースから optparse ライブラリに関する行を除 外します。
array で指定されたバックトレースから optparse ライブラリに関する行を除
外します。
デバッグモード($DEBUGが真)の場合は何もしません。
@param array バックトレースを文字列の配列で指定します。
@return array を返します。 -
Thread
# backtrace -> [String] | nil (36601.0) -
スレッドの現在のバックトレースを返します。
スレッドの現在のバックトレースを返します。
スレッドがすでに終了している場合は nil を返します。
//emlist[例][ruby]{
class C1
def m1
sleep 5
end
def m2
m1
end
end
th = Thread.new {C1.new.m2; Thread.stop}
th.backtrace
# => [
# [0] "(irb):3:in `sleep'",
# [1] "(irb):3:in `m1'",
# [2] "(irb):6:in `m2'",
# [3] ... -
VALUE rb
_ f _ trace _ var(int argc , VALUE *argv) (36601.0) -
-
VALUE rb
_ f _ untrace _ var(int argc , VALUE *argv) (36601.0) -
-
static VALUE get
_ backtrace(VALUE info) (36601.0) -
-
static VALUE make
_ backtrace(void) (36601.0) -
-
static void rb
_ trace _ eval(VALUE cmd , VALUE val) (36601.0) -
-
static void set
_ backtrace(VALUE info , VALUE bt) (36601.0) -
-
void rb
_ backtrace(void) (36601.0) -
-
Thread
:: Backtrace :: Location # base _ label -> String (36301.0) -
self が表すフレームの基本ラベルを返します。通常、 Thread::Backtrace::Location#label から修飾を取り除いたもので構成 されます。
self が表すフレームの基本ラベルを返します。通常、
Thread::Backtrace::Location#label から修飾を取り除いたもので構成
されます。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.base_label
end
# => init... -
irb
/ ext / tracer (36001.0) -
irb への入力を評価する時に tracer ライブラリを使用してトレース 出力を行う機能を提供するサブライブラリです。
irb への入力を評価する時に tracer ライブラリを使用してトレース
出力を行う機能を提供するサブライブラリです。
conf.use_tracer か IRB.conf[:USE_TRACER] に true を設定する事で使用でき
ます。ただし、Tracer.verbose? は常に false で実行されます。 -
IRB
:: Frame # trace _ func(event , file , line , id , binding) -> Binding (27904.0) -
ライブラリ内部で使用します。
ライブラリ内部で使用します。 -
TracePoint
# binding -> Binding (27637.0) -
発生したイベントによって生成された Binding オブジェクトを返します。
発生したイベントによって生成された Binding オブジェクトを返します。
//emlist[例][ruby]{
def foo(ret)
ret
end
trace = TracePoint.new(:call) do |tp|
p tp.binding.local_variables # => [:ret]
end
trace.enable
foo 1
//} -
Tracer
# trace _ func(event , file , line , id , binding , klass , *) -> object | nil (27604.0) -
@todo
@todo -
Tracer
. trace _ func(*vars) -> object | nil (27604.0) -
debug ライブラリの内部で使用します。
debug ライブラリの内部で使用します。 -
IRB
:: Context # use _ tracer -> bool (27601.0) -
irb への入力を評価する時に tracer が有効かどうかを返します。
irb への入力を評価する時に tracer が有効かどうかを返します。
@see tracer, IRB::Context#use_tracer= -
IRB
:: Context # use _ tracer? -> bool (27601.0) -
irb への入力を評価する時に tracer が有効かどうかを返します。
irb への入力を評価する時に tracer が有効かどうかを返します。
@see tracer, IRB::Context#use_tracer= -
Tracer
. verbose -> bool (27601.0) -
真ならばトレース出力の開始や終了を知らせます。
真ならばトレース出力の開始や終了を知らせます。 -
Tracer
. verbose? -> bool (27601.0) -
真ならばトレース出力の開始や終了を知らせます。
真ならばトレース出力の開始や終了を知らせます。 -
TracePoint
# disable -> bool (27481.0) -
self のトレースを無効にします。
self のトレースを無効にします。
実行前の TracePoint#enabled? を返します。(トレースが既に有効であっ
た場合は true を返します。そうでなければ false を返します)
//emlist[例][ruby]{
trace.enabled? # => true
trace.disable # => false (実行前の状態)
trace.enabled? # => false
trace.disable # => false
//}
ブロックが与えられた場合、ブロック内でのみトレースが無効になります。
この場合はブロックの評価結果を返します。
//e... -
TracePoint
# disable { . . . } -> object (27481.0) -
self のトレースを無効にします。
self のトレースを無効にします。
実行前の TracePoint#enabled? を返します。(トレースが既に有効であっ
た場合は true を返します。そうでなければ false を返します)
//emlist[例][ruby]{
trace.enabled? # => true
trace.disable # => false (実行前の状態)
trace.enabled? # => false
trace.disable # => false
//}
ブロックが与えられた場合、ブロック内でのみトレースが無効になります。
この場合はブロックの評価結果を返します。
//e... -
TracePoint
# enable -> bool (27481.0) -
self のトレースを有効にします。
self のトレースを有効にします。
実行前の TracePoint#enabled? を返します。(トレースが既に有効であっ
た場合は true を返します。そうでなければ false を返します)
//emlist[例][ruby]{
trace.enabled? # => false
trace.enable # => false (実行前の状態)
# トレースが有効
trace.enabled? # => true
trace.enable # => true (実行前の状態)
# 引き続きトレースが有効
//}
ブロックが与えられた場合、ブロック内でのみ... -
TracePoint
# enable { . . . } -> object (27481.0) -
self のトレースを有効にします。
self のトレースを有効にします。
実行前の TracePoint#enabled? を返します。(トレースが既に有効であっ
た場合は true を返します。そうでなければ false を返します)
//emlist[例][ruby]{
trace.enabled? # => false
trace.enable # => false (実行前の状態)
# トレースが有効
trace.enabled? # => true
trace.enable # => true (実行前の状態)
# 引き続きトレースが有効
//}
ブロックが与えられた場合、ブロック内でのみ... -
Tracer
. verbose=(flag) (27433.0) -
トレース出力の開始や終了を知らせる文字列("Trace on"または"Trace off")が必要なら真を設定します。
トレース出力の開始や終了を知らせる文字列("Trace on"または"Trace off")が必要なら真を設定します。
@param flag トレース出力の開始や終了を知らせる文字列が必要ならtrueを設定します。
require 'tracer'
Tracer.verbose = true
Tracer.on {
puts "Hello"
}
# 出力例
Trace on
#0:t5.rb:7::-: puts "Hello"
#0:t5.rb:7:Kernel:>: puts "Hello"
#0:t5.rb:7:IO:>: ... -
IRB
:: Context # use _ tracer=(val) (27301.0) -
irb への入力を評価する時に tracer が有効にするかどうかを val で 指定します。
irb への入力を評価する時に tracer が有効にするかどうかを val で
指定します。
.irbrc ファイル中で IRB.conf[:USE_TRACER] を設定する事でも同様の事が行
えます。
@param val tracer を有効にする場合に true を指定します。
@see tracer, IRB::Context#use_tracer -
Thread
:: Backtrace :: Location # absolute _ path -> String (27301.0) -
self が表すフレームの絶対パスを返します。
self が表すフレームの絶対パスを返します。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.absolute_path
end
# => /path/to/foo.rb
# /path/to/foo.rb
# /path/to/foo.rb
//}
@see... -
Thread
:: Backtrace :: Location # label -> String (27301.0) -
self が表すフレームのラベルを返します。通常、メソッド名、クラス名、モ ジュール名などで構成されます。
self が表すフレームのラベルを返します。通常、メソッド名、クラス名、モ
ジュール名などで構成されます。
例: Thread::Backtrace::Location の例1を用いた例
//emlist[][ruby]{
loc = c(0..1).first
loc.label # => "a"
//}
@see Thread::Backtrace::Location#base_label -
TracePoint
# enabled? -> bool (27301.0) -
self のトレースが有効な場合に true を、そうでない場合に false を返しま す。
self のトレースが有効な場合に true を、そうでない場合に false を返しま
す。
@see TracePoint#enable, TracePoint#disable -
Tracer
:: EVENT _ SYMBOL (27301.0) -
トレース出力のシンボルのハッシュです。 下記のような文字列があります。
トレース出力のシンボルのハッシュです。
下記のような文字列があります。
EVENT_SYMBOL = {
"line" => "-",
"call" => ">",
"return" => "<",
"class" => "C",
"end" => "E",
"c-call" => ">",
"c-return" => "<",
}
@see Tracer.add_filter -
static VALUE set
_ trace _ func(VALUE obj , VALUE trace) (18949.0) -
Kernel#set_trace_func の実体。 評価器に対するフック手続きを登録します。
Kernel#set_trace_func の実体。
評価器に対するフック手続きを登録します。 -
Etc
:: SC _ V6 _ LPBIG _ OFFBIG -> Integer (18625.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ V7 _ LPBIG _ OFFBIG -> Integer (18625.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
static VALUE trace
_ en(struct global _ variable *var) (18601.0) -
-
static void remove
_ trace(struct global _ variable *var) (18601.0) -
-
Thread
# set _ trace _ func(pr) -> Proc | nil (18466.0) -
スレッドにトレース用ハンドラを設定します。
スレッドにトレース用ハンドラを設定します。
nil を渡すとトレースを解除します。
設定したハンドラを返します。
//emlist[例][ruby]{
th = Thread.new do
class Trace
end
2.to_s
Thread.current.set_trace_func nil
3.to_s
end
th.set_trace_func lambda {|*arg| p arg }
th.join
# => ["line", "example.rb", 2, nil, #<Binding:0x00007fc8de87cb08>, nil]
#... -
Kernel
. # untrace _ var(varname , hook = nil) -> [String|Proc] (18409.0) -
グローバル変数 varname に関連付けられたフックを解除します。
グローバル変数 varname に関連付けられたフックを解除します。
hook が指定された場合にはそのフックだけを解除します。
省略するか nil を与えた場合は
varname のフックを全て解除します。
@param varname グローバル変数名を文字列か Symbol で指定します。
@param hook 文字列または Proc オブジェクトです。
@return 解除されたフックの配列を返します。
//emlist[例][ruby]{
trace_var(:$v){|val| print "hookA.#{val.inspect},\n" }
block = proc{... -
Thread
# add _ trace _ func(pr) -> Proc (18394.0) -
スレッドにトレース用ハンドラを追加します。
スレッドにトレース用ハンドラを追加します。
追加したハンドラを返します。
@param pr トレースハンドラ(Proc オブジェクト)
//emlist[例][ruby]{
th = Thread.new do
class Trace
end
43.to_s
end
th.add_trace_func lambda {|*arg| p arg }
th.join
# => ["line", "example.rb", 4, nil, #<Binding:0x00007f98e107d0d8>, nil]
# => ["c-call", "example.rb", 4, ... -
RubyVM
:: InstructionSequence . disassemble(body) -> String (18373.0) -
引数 body で指定したオブジェクトから作成した RubyVM::InstructionSequence オブジェクトを人間が読める形式の文字 列に変換して返します。
引数 body で指定したオブジェクトから作成した
RubyVM::InstructionSequence オブジェクトを人間が読める形式の文字
列に変換して返します。
@param body Proc、Method オブジェクトを指定します。
例1:Proc オブジェクトを指定した場合
# /tmp/proc.rb
p = proc { num = 1 + 2 }
puts RubyVM::InstructionSequence.disasm(p)
出力:
== disasm: <RubyVM::InstructionSequence:block in <main... -
RubyVM
:: InstructionSequence # disassemble -> String (18319.0) -
self が表す命令シーケンスを人間が読める形式の文字列に変換して返します。
self が表す命令シーケンスを人間が読める形式の文字列に変換して返します。
puts RubyVM::InstructionSequence.compile('1 + 2').disasm
出力:
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace 1 ( 1)
0002 putobject 1
0004 putobje... -
Thread
:: Backtrace :: Location (18055.0) -
Ruby のフレームを表すクラスです。
Ruby のフレームを表すクラスです。
Kernel.#caller_locations から生成されます。
//emlist[例1][ruby]{
# caller_locations.rb
def a(skip)
caller_locations(skip)
end
def b(skip)
a(skip)
end
def c(skip)
b(skip)
end
c(0..2).map do |call|
puts call.to_s
end
//}
例1の実行結果:
caller_locations.rb:2:in `a'
caller_locations... -
debug (18037.0)
-
Ruby デバッガです。Ruby スクリプトのソースコードデバッグに使用します。
Ruby デバッガです。Ruby スクリプトのソースコードデバッグに使用します。
また、Emacs を使用したインタフェース rubydb3x.el が
https://github.com/ruby/elisp にあるので、活用してください。
=== 使い方
$ ruby -rdebug foo.rb
または、Emacs から
M-x load-library rubydb3x.el
M-x rubydb
=== デバッグコマンド
以下は、デバッガで使用できるコマンド名とその用法の一覧です。
各コマンド名には省略形があります。
ここに挙げたもの以外を入力し... -
irb (18037.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
irb は Interactive Ruby の略です。
irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
=== irb の使い方
Ruby さえ知っていれば irb を使うのは簡単です。
irb コマンドを実行すると、以下のようなプロンプトが表れます。
$ irb
irb(main):001:0>
あとは Ruby の式を入力するだけで、その式が実行され、結果が表示されます。
irb(main):001:0> 1+2
3
irb(main):002:0> class Foo
irb(main):003:1> def f... -
Thread
:: Backtrace :: Location # inspect -> String (18001.0) -
Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文 字列に変換したオブジェクトを返します。
Thread::Backtrace::Location#to_s の結果を人間が読みやすいような文
字列に変換したオブジェクトを返します。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.inspect
end
# => "path/to/foo.rb:5:in ... -
Thread
:: Backtrace :: Location # lineno -> Integer (18001.0) -
self が表すフレームの行番号を返します。
self が表すフレームの行番号を返します。
例: Thread::Backtrace::Location の例1を用いた例
//emlist[][ruby]{
loc = c(0..1).first
loc.lineno # => 2
//} -
Thread
:: Backtrace :: Location # path -> String (18001.0) -
self が表すフレームのファイル名を返します。
self が表すフレームのファイル名を返します。
例: Thread::Backtrace::Location の例1を用いた例
//emlist[][ruby]{
loc = c(0..1).first
loc.path # => "caller_locations.rb"
//}
@see Thread::Backtrace::Location#absolute_path -
Thread
:: Backtrace :: Location # to _ s -> String (18001.0) -
self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し ます。
self が表すフレームを Kernel.#caller と同じ表現にした文字列を返し
ます。
//emlist[例][ruby]{
# foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.to_s
end
# => path/to/foo.rb:5:in `initialize'
# path/to/foo... -
TracePoint
. new(*events) {|obj| . . . } -> TracePoint (9727.0) -
新しい TracePoint オブジェクトを作成して返します。トレースを有効 にするには TracePoint#enable を実行してください。
新しい TracePoint オブジェクトを作成して返します。トレースを有効
にするには TracePoint#enable を実行してください。
//emlist[例:irb で実行した場合][ruby]{
trace = TracePoint.new(:call) do |tp|
p [tp.lineno, tp.defined_class, tp.method_id, tp.event]
end
# => #<TracePoint:0x007f17372cdb20>
trace.enable
# => false
puts "Hello, TracePoint!"
# .... -
Fiber
# raise(exception , message = nil , backtrace = nil) -> object (9601.0) -
selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。
selfが表すファイバーが最後に Fiber.yield を呼んだ場所で例外を発生させます。
Fiber.yield が呼ばれていないかファイバーがすでに終了している場合、
FiberError が発生します。
引数を渡さない場合、RuntimeError が発生します。
message 引数を渡した場合、message 引数をメッセージとした RuntimeError
が発生します。
その他のケースでは、最初の引数は Exception か Exception
のインスタンスを返す exception メソッドを持ったオブジェクトである
必要があります。
この場合、2つ目の引数に例外... -
WEBrick
:: HTTPResponse # set _ error(status , backtrace = false) -> () (9601.0) -
自身の内容(エンティティボディ)を指定された status のエラーページにします。
自身の内容(エンティティボディ)を指定された status のエラーページにします。
@param status WEBrick::HTTPStatus::Status のサブクラスか一般の例外クラスを指定します。
@param backtrace true を指定した場合バックトレースをエラーページに出力します。 -
ObjectSpace
. # allocation _ sourcefile(object) -> String (9373.0) -
objectの元となったソースファイル名を返します。
objectの元となったソースファイル名を返します。
@param object 元となるソースファイル名を取得したいobjectを指定します。
@return objectの元となるソースファイル名を返します。存在しない場合はnilを返します。
//emlist[例:test.rbというファイルで下記のスクリプトを実行した場合][ruby]{
require 'objspace'
ObjectSpace::trace_object_allocations_start
obj = Object.new
puts "file:#{ObjectSpace::allocation_sourc... -
ObjectSpace
. # allocation _ sourceline(object) -> Integer (9373.0) -
objectの元となったソースファイルの行番号を返します。
objectの元となったソースファイルの行番号を返します。
@param object 元となるソースファイルの行番号を取得したいobjectを指定します。
@return objectの元となるソースファイルの行番号を返します。存在しない場合はnilを返します。
//emlist[例][ruby]{
require 'objspace'
ObjectSpace::trace_object_allocations_start
obj = Object.new
puts "line:#{ObjectSpace::allocation_sourceline(obj)}" # => lin... -
RubyVM
:: InstructionSequence . disasm(body) -> String (9373.0) -
引数 body で指定したオブジェクトから作成した RubyVM::InstructionSequence オブジェクトを人間が読める形式の文字 列に変換して返します。
引数 body で指定したオブジェクトから作成した
RubyVM::InstructionSequence オブジェクトを人間が読める形式の文字
列に変換して返します。
@param body Proc、Method オブジェクトを指定します。
例1:Proc オブジェクトを指定した場合
# /tmp/proc.rb
p = proc { num = 1 + 2 }
puts RubyVM::InstructionSequence.disasm(p)
出力:
== disasm: <RubyVM::InstructionSequence:block in <main... -
TracePoint
# parameters -> [object] (9373.0) -
現在のフックが属するメソッドまたはブロックのパラメータ定義を返します。 フォーマットは Method#parameters と同じです。
現在のフックが属するメソッドまたはブロックのパラメータ定義を返します。
フォーマットは Method#parameters と同じです。
@raise RuntimeError :call、:return、:b_call、:b_return、:c_call、:c_return
イベントのためのイベントフックの外側で実行した場合に発生します。
//emlist[例][ruby]{
def foo(a, b = 2)
end
TracePoint.new(:call) do |tp|
p tp.parameters # => a], [:opt, ... -
TracePoint
# return _ value -> object (9355.0) -
メソッドやブロックの戻り値を返します。
メソッドやブロックの戻り値を返します。
@raise RuntimeError :return、:c_return、:b_return イベントのためのイベ
ントフックの外側で実行した場合に発生します。
//emlist[例][ruby]{
def foo(ret)
ret
end
trace = TracePoint.new(:return) do |tp|
p tp.return_value # => 1
end
trace.enable
foo 1
//} -
NEWS for Ruby 2
. 7 . 0 (9343.0) -
NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...NEWS for Ruby 2.7.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリス... -
TracePoint
# callee _ id -> Symbol | nil (9337.0) -
イベントが発生したメソッドの呼ばれた名前を Symbol で返します。 トップレベルであった場合は nil を返します。
イベントが発生したメソッドの呼ばれた名前を Symbol で返します。
トップレベルであった場合は nil を返します。
@raise RuntimeError イベントフックの外側で実行した場合に発生します。
//emlist[][ruby]{
class C
def method_name
end
alias alias_name method_name
end
trace = TracePoint.new(:call) do |tp|
p [tp.method_id, tp.callee_id] # => [:method_name, :alias_name]
e... -
TracePoint
# event -> Symbol (9337.0) -
発生したイベントの種類を Symbol で返します。
発生したイベントの種類を Symbol で返します。
発生するイベントの詳細については、TracePoint.new を参照してくださ
い。
@raise RuntimeError イベントフックの外側で実行した場合に発生します。
//emlist[例][ruby]{
def foo(ret)
ret
end
trace = TracePoint.new(:call, :return) do |tp|
p tp.event
end
trace.enable
foo 1
# => :call
# :return
//} -
TracePoint
# method _ id -> Symbol | nil (9337.0) -
イベントが発生したメソッドの定義時の名前を Symbol で返します。 トップレベルであった場合は nil を返します。
イベントが発生したメソッドの定義時の名前を Symbol で返します。
トップレベルであった場合は nil を返します。
@raise RuntimeError イベントフックの外側で実行した場合に発生します。
//emlist[][ruby]{
class C
def method_name
end
alias alias_name method_name
end
trace = TracePoint.new(:call) do |tp|
p [tp.method_id, tp.callee_id] # => [:method_name, :alias_name]
e... -
Etc
:: SC _ 2 _ C _ BIND -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ 2 _ PBS -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ 2 _ PBS _ ACCOUNTING -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ 2 _ PBS _ CHECKPOINT -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ 2 _ PBS _ LOCATE -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ 2 _ PBS _ MESSAGE -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ 2 _ PBS _ TRACK -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ BARRIERS -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ BC _ BASE _ MAX -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ BC _ DIM _ MAX -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ BC _ SCALE _ MAX -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ BC _ STRING _ MAX -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ JOB _ CONTROL -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ SHARED _ MEMORY _ OBJECTS -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ROBUST _ PRIO _ INHERIT -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ROBUST _ PRIO _ PROTECT -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ TYPED _ MEMORY _ OBJECTS -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ V6 _ ILP32 _ OFFBIG -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ V7 _ ILP32 _ OFFBIG -> Integer (9325.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
TracePoint
# self -> object (9319.0) -
イベントを発生させたオブジェクトを返します。
イベントを発生させたオブジェクトを返します。
以下のようにする事で同じ値を取得できます。
//emlist[例][ruby]{
trace.binding.eval('self')
//}
@see TracePoint#binding -
Tracer
. add _ filter {|event , file , line , id , binding , klass| . . . . } (9319.0) -
トレース出力するかどうかを決定するフィルタを追加します。 何もフィルタを与えない場合はすべての行についてトレース情報が出力されます。 与えられた手続き(ブロックまたはProcオブジェクト)が真を返せば トレースは出力されます。
トレース出力するかどうかを決定するフィルタを追加します。
何もフィルタを与えない場合はすべての行についてトレース情報が出力されます。
与えられた手続き(ブロックまたはProcオブジェクト)が真を返せば
トレースは出力されます。
フィルタは複数追加でき、
そのうち一つでも偽を返すとトレースの出力は抑制されます。
@param proc トレース出力するかどうかを決定する手続きオブジェクトを指定します。
通常、true か falseを返す必要があります。
フィルタ手続きは引数として event, file, line, id, binding, klass の... -
TracePoint
# instruction _ sequence -> RubyVM :: InstructionSequence (9301.0) -
script_compiledイベント発生時にコンパイルされた RubyVM::InstructionSequenceインスタンスを返します。
script_compiledイベント発生時にコンパイルされた
RubyVM::InstructionSequenceインスタンスを返します。
//emlist[例][ruby]{
TracePoint.new(:script_compiled) do |tp|
p tp.instruction_sequence # => <RubyVM::InstructionSequence:block in <main>@(eval):1>
end.enable do
eval("puts 'hello'")
end
//}
@raise RuntimeError :script_comp... -
TracePoint
. stat -> object (9301.0) -
TracePoint の内部情報を返します。
TracePoint の内部情報を返します。
返り値の内容は実装依存です。
将来変更される可能性があります。
このメソッドは TracePoint 自身のデバッグ用です。 -
Tracer
. display _ c _ call -> bool (9301.0) -
真ならば、ビルトインメソッドの呼び出しを表示します。 デフォルトは偽です。
真ならば、ビルトインメソッドの呼び出しを表示します。
デフォルトは偽です。 -
Tracer
. display _ c _ call? -> bool (9301.0) -
真ならば、ビルトインメソッドの呼び出しを表示します。 デフォルトは偽です。
真ならば、ビルトインメソッドの呼び出しを表示します。
デフォルトは偽です。 -
Tracer
. display _ process _ id -> bool (9301.0) -
真ならば、プロセス ID を表示します。 デフォルトは、偽です。
真ならば、プロセス ID を表示します。
デフォルトは、偽です。