From: "andhapp (Anuj Dutta)" Date: 2012-05-03T08:04:37+09:00 Subject: [ruby-core:44816] [ruby-trunk - Feature #2565] adding hooks for better tracing Issue #2565 has been updated by andhapp (Anuj Dutta). I was just looking at Joyent's ruby dtrace page and saw ruby-probe (Probe that can be fired from ruby code). However, I didn't see it in Aaron's implementation here https://github.com/tenderlove/ruby/blob/probes/probes.d. Is there a reason why that's not included? Please enlighten. Thanks. ---------------------------------------- Feature #2565: adding hooks for better tracing https://bugs.ruby-lang.org/issues/2565#change-26391 Author: yugui (Yuki Sonoda) Status: Assigned Priority: Low Assignee: tenderlovemaking (Aaron Patterson) Category: core Target version: 2.0.0 =begin Hi, I made a commit that embeded dtrace probes into Ruby so that you can profile a Ruby application at runtime. (r26235) Adding probes had been approved by a Ruby developer's meeting, however, the commit was little larger than what other committers expected. I got some objection for the commit. [ruby-dev:39954] In the end, I decided to temporarily revert the commit. (r26243) I discussed how we should support dynamic runtime tracing, with ko1, mame, naruse, unak and shyouhei. The problems of the commit were: * the probes duplicated with the event_hook framework (rb_add_event_hook, Kernel#set_trace_func) * Design of the probes were not verified enough. * more trial and error are necessary, to make it clear what is necessary to trace a Ruby application. I accepted ko1's suggestion: * reverting the commit * adding some hooks for rb_add_event_hook(). * implementing probes for dynamic runtime tracing on the event_hook framework. * these probes can be implemented as a gem * I will aget a chance for trial and error. * The probes possibly will be merged into Ruby itself after enough designed and getting enough use cases. Here is a patch to add the hooks I and ko1 talked about. (attached) And here is an extension library that provides prove points to dtrace, on top of the hooks. (http://github.com/yugui/vm_probes ) What do you think? Can I commit the patch I attached? Thank you, -- Yuki Sonoda (Yugui) Attachment: adding-hooks.patch =end -- http://bugs.ruby-lang.org/