Skip to content

Instantly share code, notes, and snippets.

@plukevdh
Last active August 29, 2015 14:15
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 plukevdh/6c94f7f5f4028bdc2b5e to your computer and use it in GitHub Desktop.
Save plukevdh/6c94f7f5f4028bdc2b5e to your computer and use it in GitHub Desktop.
Dump of Sinatra definition
require 'sinatra/base'
require 'rbtrace'
proc {
Dir.chdir("/tmp") do
Dir.pwd
Process.pid
sleep 30
class Demo < Sinatra::Base
get '/hello' do
puts "What"
end
post '/facing' do
puts "nope"
end
end
end
}.call
Sinatra::Base.inherited
Demo.reset!
Class#superclass <0.000007>
Kernel#respond_to? <0.000009>
Class#new
Hash#initialize <0.000013>
Class#new <0.000100>
Demo.reset! <0.000213>
Demo.app_file?
Demo.app_file <0.000006>
Demo.app_file? <0.000025>
Sinatra::Base.caller_files
Sinatra::Base.cleaned_caller
Kernel#caller
Kernel#respond_to_missing? <0.000005>
Kernel#caller <0.000059>
Array#map!
String#split <0.000038>
Array#[] <0.000006>
String#split <0.000008>
Array#[] <0.000005>
String#split <0.000031>
Array#[] <0.000007>
String#split <0.000008>
Array#[] <0.000006>
String#split <0.000008>
Array#[] <0.000005>
String#split <0.000007>
Array#[] <0.000005>
String#split <0.000008>
Array#[] <0.000005>
Array#map! <0.000271>
Array#reject
Enumerable#any?
Array#each
String#=~ <0.000030>
Array#each <0.000050>
Enumerable#any? <0.000069>
Enumerable#any?
Array#each
String#=~ <0.000026>
Array#each <0.000103>
Enumerable#any? <0.000137>
Enumerable#any?
Array#each
String#=~ <0.000032>
String#=~ <0.000034>
String#=~ <0.000022>
String#=~ <0.000021>
String#=~ <0.000034>
String#=~ <0.000016>
String#=~ <0.000029>
String#=~ <0.000026>
Array#each <0.000491>
Enumerable#any?
Array#each
String#=~ <0.000031>
String#=~ <0.000042>
String#=~ <0.000038>
String#=~ <0.000033>
String#=~ <0.000034>
String#=~ <0.000029>
String#=~
String#=~ <0.000008>
String#=~ <0.000124>
Array#each <0.000572>
Enumerable#any?
Array#each
String#=~ <0.000029>
String#=~ <0.000029>
Array#each <0.000300>
String#=~ <0.000028>
String#=~ <0.000020>
String#=~ <0.000020>
String#=~ <0.000030>
Enumerable#any? <0.000559>
Enumerable#any? <0.001204>
Enumerable#any?
Array#each
String#=~ <0.000140>
String#=~ <0.000030>
String#=~ <0.000035>
String#=~ <0.000037>
String#=~ <0.000033>
String#=~ <0.000042>
String#=~ <0.000029>
Array#each <0.000594>
Enumerable#any? <0.000652>
Enumerable#any?
Array#each
String#=~
String#=~ <0.000031>
String#=~ <0.000024>
String#=~ <0.000020>
String#=~ <0.000021>
String#=~ <0.000025>
String#=~ <0.000024>
String#=~ <0.000025>
String#=~ <0.000427>
Array#each <0.000522>
Enumerable#any? <0.000569>
Enumerable#any? <0.003230>
Array#first <0.000021>
Demo.set
Symbol#to_s <0.000028>
Demo.set <0.000178>
Symbol#to_s <0.000024>
Demo.app_file=
Demo.set
Symbol#to_s <0.000021>
Kernel#respond_to? <0.000020>
Kernel#proc <0.000025>
Kernel#proc <0.000022>
Module#=== <0.000025>
Module#=== <0.000025>
Module#=== <0.000027>
Module#=== <0.000020>
Module#=== <0.000025>
Module#=== <0.000025>
Symbol#to_s <0.000025>
Demo.define_singleton
Module#class_eval
Module#method_defined? <0.000021>
Module#undef_method
BasicObject#singleton_method_undefined <0.000061>
Module#=== <0.000021>
Module#define_method
BasicObject#singleton_method_added <0.000021>
Module#define_method <0.000090>
Module#undef_method <0.000367>
Demo.define_singleton
Module#class_eval
Module#method_defined? <0.000028>
Module#undef_method
BasicObject#singleton_method_undefined <0.000021>
Module#undef_method <0.000071>
Module#=== <0.000011>
Module#class_eval <0.000243>
Demo.define_singleton <0.000275>
Module#class_eval <0.000810>
Demo.define_singleton <0.000899>
Symbol#to_s <0.000025>
Module#method_defined? <0.000024>
Symbol#to_s <0.000038>
Symbol#to_s <0.000021>
Demo.define_singleton
Module#class_eval
Module#method_defined? <0.000022>
Module#undef_method
BasicObject#singleton_method_undefined <0.000009>
Module#undef_method <0.000043>
Module#=== <0.000024>
Module#class_eval
BasicObject#singleton_method_added <0.000007>
Module#class_eval <0.000083>
Module#class_eval <0.000289>
Demo.define_singleton <0.000328>
Demo.set <0.002167>
Demo.app_file= <0.002213>
Array#reject <0.006102>
Class#inherited <0.000021>
Sinatra::Base.cleaned_caller <0.006573>
Demo.get
Kernel#dup
Kernel#initialize_dup <0.000107>
Kernel#dup <0.000154>
Demo.route
Hash#key? <0.000037>
Demo.compile!
Hash#each_pair <0.000019>
Demo.compile! <0.002914>
Kernel#respond_to?
Kernel#respond_to_missing? <0.000026>
Kernel#respond_to? <0.000058>
Demo.route <0.003253>
Array#(unknown) <0.000037>
Demo.get <0.003549>
Array#each <0.000020>
Sinatra::Base.caller_files <0.012594>
Sinatra::Base.inherited <0.013017>
Demo.post
Demo.route
Hash#key? <0.000014>
Demo.compile!
Hash#each_pair <0.000018>
Demo.(unknown)
String#to_sym <0.000020>
Module#define_method
Module#(unknown) <0.000021>
Module#define_method <0.000055>
Module#(unknown) <0.000016>
Module#(unknown)
Module#(unknown) <0.000017>
Module#(unknown) <0.000051>
Demo.(unknown) <0.000245>
Demo.(unknown)
Kernel#respond_to? <0.000021>
String#split <0.000023>
Array#map!
String#(unknown) <0.000022>
String#(unknown) <0.000014>
Array#(unknown) <0.000014>
Array#(unknown) <0.000017>
String#(unknown) <0.000018>
String#(unknown) <0.000006>
String#(unknown) <0.000008>
Array#(unknown) <0.000019>
Array#(unknown) <0.000015>
String#(unknown) <0.000016>
Array#map! <0.000273>
Array#(unknown) <0.000019>
String#(unknown)
(unknown) <0.000018>
String#(unknown) <0.000054>
Array#(unknown) <0.000014>
to_s <0.000019>
Demo.(unknown) <0.000564>
(unknown) <0.000023>
Kernel#proc <0.000008>
Kernel#(unknown) <0.000007>
Demo.compile! <0.000960>
Demo.(unknown)
Demo.(unknown)
Class#superclass <0.000015>
Kernel#respond_to? <0.000015>
Class#superclass <0.000015>
Sinatra::Base.(unknown)
Class#superclass <0.000017>
Kernel#respond_to?
Kernel#respond_to_missing? <0.000018>
Kernel#respond_to? <0.000048>
Sinatra::Base.(unknown) <0.000109>
Array#(unknown) <0.000044>
Array#each <0.000021>
Demo.(unknown) <0.000334>
Demo.(unknown) <0.000368>
Demo.route <0.001400>
Demo.post <0.001440>

run demo

ruby demo.rb

fetch pid

ps aux|grep ruby

attach rbtrace

be rbtrace -p <pid> --firehose > test.txt

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