Skip to content

Instantly share code, notes, and snippets.

@skade
Forked from tmm1/gist:7998799
Last active January 4, 2016 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skade/8633489 to your computer and use it in GitHub Desktop.
Save skade/8633489 to your computer and use it in GitHub Desktop.
$ cat ruby_mcache.stp
probe process("/usr/bin/ruby").mark("method__cache__clear")
{
module = kernel_string($arg1)
if ($arg2)
file = kernel_string($arg2)
else
file = "<internal>"
line = $arg3
printf("%s(%d) %s %s:%d cleared `%s'\n", execname(), pid(), $$name, file, line, module)
}
$ sudo stap ruby_mcache.stp
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:169 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:170 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:169 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:170 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:169 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:170 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:169 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:170 cleared `OpenStruct'
ruby(25410) method__cache__clear lib/ruby/2.1.0/ostruct.rb:169 cleared `OpenStruct'
@fche
Copy link

fche commented Jan 26, 2014

You'll want e.g. user_string_quoted() rather than kernel_string() throughout.
See man function::user_string_quoted. Then you don't even need the $arg2 null check.

@skade
Copy link
Author

skade commented Mar 11, 2014

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment