U:RDoc::NormalClass[iI"Tracer:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I">Outputs a source level execution trace of a Ruby program.;To:RDoc::Markup::BlankLine o; ;[I"QIt does this by registering an event handler with Kernel#set_trace_func for ;TI"Rprocessing incoming events. It also provides methods for filtering unwanted ;TI"Etrace output (see Tracer.add_filter, Tracer.on, and Tracer.off).;T@S:RDoc::Markup::Heading:
leveli: textI"Example;T@o; ;[I"'Consider the following Ruby script;T@o:RDoc::Markup::Verbatim;[
I"
class A
;TI" def square(a)
;TI" return a*a
;TI" end
;TI" end
;TI"
;TI"a = A.new
;TI"a.square(5)
;T:@format0o; ;[I"PRunning the above script using ruby -r tracer example.rb
will ;TI"Houtput the following trace to STDOUT (Note you can also explicitly ;TI"#require 'tracer'
);T@o;;[I">#0::38:Kernel:<: -
;TI"!#0:example.rb:3::-: class A
;TI"!#0:example.rb:3::C: class A
;TI")#0:example.rb:4::-: def square(a)
;TI"#0:example.rb:7::E: end
;TI"##0:example.rb:9::-: a = A.new
;TI":example.rb:10::-: a.square(5)
;TI"*#0:example.rb:4:A:>: def square(a)
;TI")#0:example.rb:5:A:-: return a*a
;TI" #0:example.rb:6:A:<: end
;TI" | | | | |
;TI"6 | | | | ---------------------+ event
;TI"6 | | | ------------------------+ class
;TI"5 | | --------------------------+ line
;TI"9 | ------------------------------------+ filename
;TI"7 ---------------------------------------+ thread
;T;0o; ;[I"6Symbol table used for displaying incoming events:;T@o:RDoc::Markup::List:
@type: NOTE:@items[
o:RDoc::Markup::ListItem:@label[I"+}+;T;[o; ;[I"call a C-language routine;To;;[I"+{+;T;[o; ;[I"%return from a C-language routine;To;;[I"+>+;T;[o; ;[I"call a Ruby method;To;;[I"+C+;T;[o; ;[I"'start a class or module definition;To;;[I"+E+;T;[o; ;[I"(finish a class or module definition;To;;[I"+-+;T;[o; ;[I"execute code on a new line;To;;[I"+^+;T;[o; ;[I"raise an exception;To;;[I"+<+;T;[o; ;[I"return from a Ruby method;T@S;;i;
I"Copyright;T@o; ;[I",by Keiju ISHITSUKA(keiju@ishitsuka.com);T:
@fileI"lib/tracer.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"display_c_call;TI"RW;T:publicTI"lib/tracer.rb;T[
I"display_c_call?;FI"RW;T;T@~[
I"display_process_id;TI"RW;T;T@~[
I"display_process_id?;FI"RW;T;T@~[
I"display_thread_id;TI"RW;T;T@~[
I"display_thread_id?;FI"RW;T;T@~[
I"stdout;TI"RW;T;T@~[
I"stdout_mutex;TI"R;T;T@~[
I"verbose;TI"RW;T;T@~[
I"
verbose?;FI"RW;T;T@~[U:RDoc::Constant[i I"stdout;FI"Tracer::stdout;T00o;;[ ;@~;0@~@cRDoc::NormalClass0U;[i I"verbose;FI"Tracer::verbose;T00o;;[ ;@~;0@~@@¡0U;[i I"display_process_id;FI"Tracer::display_process_id;T00o;;[ ;@~;0@~@@¡0U;[i I"display_thread_id;FI"Tracer::display_thread_id;T00o;;[ ;@~;0@~@@¡0U;[i I"display_c_call;FI"Tracer::display_c_call;T00o;;[ ;@~;0@~@@¡0U;[i I"EVENT_SYMBOL;FI"Tracer::EVENT_SYMBOL;T00o;;[o; ;[I"7Symbol table used for displaying trace information;T;@~;0@~@@¡0U;[i I"Single;FI"Tracer::Single;T00o;;[o; ;[I".Reference to singleton instance of Tracer;T;@~;0@~@@¡0[ [[I"
class;T[[;[ [I"add_filter;F@~[I"off;F@~[I"on;F@~[I"set_get_line_procs;F@~[:protected[ [:private[ [I"
instance;T[[;[ [;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ;0;0[I"lib/debug.rb;T@~@~cRDoc::TopLevel