Issue #2565 has been updated by tenderlovemaking (Aaron Patterson).

File dtrace.patch added

I've attached a new patch that contains a sed script for converting the .d file to a .h file.

When a user tries to install Ruby, if they do not have dtrace, the sed script will convert the .d file to a dummy header file.  The dummy header file will be included, and the compiler will remove all dtrace probes.

I have created a wiki page to describe the DTrace probes.  It includes the probe names, arguments, stability, and a short description for each probe:

  https://bugs.ruby-lang.org/projects/ruby/wiki/DTraceProbes

I hope we can apply this patch soon!
----------------------------------------
Feature #2565: adding hooks for better tracing
https://bugs.ruby-lang.org/issues/2565#change-28205

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/