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::BlankLineo; ;[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[iI" stdout;FI"Tracer::stdout;T00o;;[;@~;0@~@cRDoc::NormalClass0U;[iI" verbose;FI"Tracer::verbose;T00o;;[;@~;0@~@@¡0U;[iI"display_process_id;FI"Tracer::display_process_id;T00o;;[;@~;0@~@@¡0U;[iI"display_thread_id;FI"Tracer::display_thread_id;T00o;;[;@~;0@~@@¡0U;[iI"display_c_call;FI"Tracer::display_c_call;T00o;;[;@~;0@~@@¡0U;[iI"EVENT_SYMBOL;FI"Tracer::EVENT_SYMBOL;T00o;;[o; ;[I"7Symbol table used for displaying trace information;T;@~;0@~@@¡0U;[iI" 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[i0o;;[;0;0[I"lib/debug.rb;T@~@~cRDoc::TopLevel