[DOC] Update set_trace_func document

- Clarify the class of event parameters
- Represent event names as strings
- Update the example to show the above
This commit is contained in:
Nobuyoshi Nakada 2023-09-04 10:20:04 +09:00
parent 3b7c8e90da
commit ba8a7ab8a8
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
Notes: git 2023-09-04 01:42:15 +00:00

View File

@ -521,25 +521,25 @@ static void call_trace_func(rb_event_flag_t, VALUE data, VALUE self, ID id, VALU
* *
* _proc_ takes up to six parameters: * _proc_ takes up to six parameters:
* *
* * an event name * * an event name string
* * a filename * * a filename string
* * a line number * * a line number
* * an object id * * a method name symbol, or nil
* * a binding * * a binding, or nil
* * the name of a class * * the class, module, or nil
* *
* _proc_ is invoked whenever an event occurs. * _proc_ is invoked whenever an event occurs.
* *
* Events are: * Events are:
* *
* +c-call+:: call a C-language routine * <code>"c-call"</code>:: call a C-language routine
* +c-return+:: return from a C-language routine * <code>"c-return"</code>:: return from a C-language routine
* +call+:: call a Ruby method * <code>"call"</code>:: call a Ruby method
* +class+:: start a class or module definition * <code>"class"</code>:: start a class or module definition
* +end+:: finish a class or module definition * <code>"end"</code>:: finish a class or module definition
* +line+:: execute code on a new line * <code>"line"</code>:: execute code on a new line
* +raise+:: raise an exception * <code>"raise"</code>:: raise an exception
* +return+:: return from a Ruby method * <code>"return"</code>:: return from a Ruby method
* *
* Tracing is disabled within the context of _proc_. * Tracing is disabled within the context of _proc_.
* *
@ -550,24 +550,25 @@ static void call_trace_func(rb_event_flag_t, VALUE data, VALUE self, ID id, VALU
* end * end
* end * end
* *
* set_trace_func proc { |event, file, line, id, binding, classname| * set_trace_func proc { |event, file, line, id, binding, class_or_module|
* printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname * printf "%8s %s:%-2d %16p %14p\n", event, file, line, id, class_or_module
* } * }
* t = Test.new * t = Test.new
* t.test * t.test
* *
* Produces: * Produces:
* *
* line prog.rb:11 false * c-return prog.rb:8 :set_trace_func Kernel
* c-call prog.rb:11 new Class * line prog.rb:11 nil nil
* c-call prog.rb:11 initialize Object * c-call prog.rb:11 :new Class
* c-return prog.rb:11 initialize Object * c-call prog.rb:11 :initialize BasicObject
* c-return prog.rb:11 new Class * c-return prog.rb:11 :initialize BasicObject
* line prog.rb:12 false * c-return prog.rb:11 :new Class
* call prog.rb:2 test Test * line prog.rb:12 nil nil
* line prog.rb:3 test Test * call prog.rb:2 :test Test
* line prog.rb:4 test Test * line prog.rb:3 :test Test
* return prog.rb:4 test Test * line prog.rb:4 :test Test
* return prog.rb:5 :test Test
* *
* Note that for +c-call+ and +c-return+ events, the binding returned is the * Note that for +c-call+ and +c-return+ events, the binding returned is the
* binding of the nearest Ruby method calling the C method, since C methods * binding of the nearest Ruby method calling the C method, since C methods