From: "tenderlovemaking (Aaron Patterson)" Date: 2012-05-03T02:12:51+09:00 Subject: [ruby-core:44811] [ruby-trunk - Feature #2565] adding hooks for better tracing Issue #2565 has been updated by tenderlovemaking (Aaron Patterson). I've updated the patch to rename all macros to RUBY_DTRACE_* ---------------------------------------- Feature #2565: adding hooks for better tracing https://bugs.ruby-lang.org/issues/2565#change-26386 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/