rubyrun 0.9.0-powerpc-darwin

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/LICENSE +13 -0
  2. data/README +77 -0
  3. data/Rakefile +241 -0
  4. data/bin/confgure +2 -0
  5. data/docs/rubyrun-0.9.0.htm +6344 -0
  6. data/docs/rubyrun-0.9.0.pdf +0 -0
  7. data/docs/rubyrun-0.9.0_files/colorschememapping.xml +2 -0
  8. data/docs/rubyrun-0.9.0_files/filelist.xml +29 -0
  9. data/docs/rubyrun-0.9.0_files/header.htm +141 -0
  10. data/docs/rubyrun-0.9.0_files/image001.jpg +0 -0
  11. data/docs/rubyrun-0.9.0_files/image002.jpg +0 -0
  12. data/docs/rubyrun-0.9.0_files/image003.jpg +0 -0
  13. data/docs/rubyrun-0.9.0_files/image004.jpg +0 -0
  14. data/docs/rubyrun-0.9.0_files/image005.jpg +0 -0
  15. data/docs/rubyrun-0.9.0_files/image006.jpg +0 -0
  16. data/docs/rubyrun-0.9.0_files/image007.jpg +0 -0
  17. data/docs/rubyrun-0.9.0_files/image008.jpg +0 -0
  18. data/docs/rubyrun-0.9.0_files/image009.jpg +0 -0
  19. data/docs/rubyrun-0.9.0_files/image010.jpg +0 -0
  20. data/docs/rubyrun-0.9.0_files/image011.jpg +0 -0
  21. data/docs/rubyrun-0.9.0_files/image012.jpg +0 -0
  22. data/docs/rubyrun-0.9.0_files/image013.jpg +0 -0
  23. data/docs/rubyrun-0.9.0_files/image014.jpg +0 -0
  24. data/docs/rubyrun-0.9.0_files/image015.jpg +0 -0
  25. data/docs/rubyrun-0.9.0_files/image016.jpg +0 -0
  26. data/docs/rubyrun-0.9.0_files/image017.png +0 -0
  27. data/docs/rubyrun-0.9.0_files/image018.jpg +0 -0
  28. data/docs/rubyrun-0.9.0_files/image019.jpg +0 -0
  29. data/docs/rubyrun-0.9.0_files/image020.jpg +0 -0
  30. data/docs/rubyrun-0.9.0_files/image021.jpg +0 -0
  31. data/docs/rubyrun-0.9.0_files/image022.png +0 -0
  32. data/docs/rubyrun-0.9.0_files/themedata.thmx +0 -0
  33. data/etc/rubyrun_opts.yml +132 -0
  34. data/ext/extconf.rb +4 -0
  35. data/ext/rubyrunnative__.bundle +0 -0
  36. data/ext/rubyrunnative__.c +154 -0
  37. data/ext/rubyrunnative__.def +2 -0
  38. data/ext/rubyrunnative__.h +36 -0
  39. data/ext/rubyrunnative__.so +0 -0
  40. data/ext/rubyrunnative__linux.so +0 -0
  41. data/html/classes/Module.html +174 -0
  42. data/html/classes/Object.html +151 -0
  43. data/html/classes/RubyRunBufferMgr__.html +182 -0
  44. data/html/classes/RubyRunCommander__.html +578 -0
  45. data/html/classes/RubyRunDad__.html +144 -0
  46. data/html/classes/RubyRunGlobals.html +248 -0
  47. data/html/classes/RubyRunHTMLWriter/RubyRunHTMLDevice.html +157 -0
  48. data/html/classes/RubyRunHTMLWriter.html +186 -0
  49. data/html/classes/RubyRunHTML__.html +198 -0
  50. data/html/classes/RubyRunInitializer__.html +821 -0
  51. data/html/classes/RubyRunInstrumentor__.html +576 -0
  52. data/html/classes/RubyRunMonitor__.html +298 -0
  53. data/html/classes/RubyRunRSS.html +302 -0
  54. data/html/classes/RubyRunReport__.html +294 -0
  55. data/html/classes/RubyRunTracer__.html +253 -0
  56. data/html/classes/RubyRunUtils__.html +376 -0
  57. data/html/created.rid +1 -0
  58. data/html/files/LICENSE.html +119 -0
  59. data/html/files/README.html +197 -0
  60. data/html/files/lib/rubyrun/rubyrun_buffer_mgr___rb.html +101 -0
  61. data/html/files/lib/rubyrun/rubyrun_commander___rb.html +101 -0
  62. data/html/files/lib/rubyrun/rubyrun_dad___rb.html +101 -0
  63. data/html/files/lib/rubyrun/rubyrun_globals_rb.html +101 -0
  64. data/html/files/lib/rubyrun/rubyrun_html___rb.html +101 -0
  65. data/html/files/lib/rubyrun/rubyrun_html_writer___rb.html +108 -0
  66. data/html/files/lib/rubyrun/rubyrun_initializer___rb.html +112 -0
  67. data/html/files/lib/rubyrun/rubyrun_instrumentor___rb.html +116 -0
  68. data/html/files/lib/rubyrun/rubyrun_monitor___rb.html +116 -0
  69. data/html/files/lib/rubyrun/rubyrun_rb.html +121 -0
  70. data/html/files/lib/rubyrun/rubyrun_report___rb.html +101 -0
  71. data/html/files/lib/rubyrun/rubyrun_rss___rb.html +108 -0
  72. data/html/files/lib/rubyrun/rubyrun_tracer___rb.html +110 -0
  73. data/html/files/lib/rubyrun/rubyrun_utils___rb.html +108 -0
  74. data/html/files/lib/rubyrunm_rb.html +116 -0
  75. data/html/fr_class_index.html +42 -0
  76. data/html/fr_file_index.html +43 -0
  77. data/html/fr_method_index.html +96 -0
  78. data/html/index.html +24 -0
  79. data/html/rdoc-style.css +208 -0
  80. data/lib/rubyrun/rubyrun.rb +78 -0
  81. data/lib/rubyrun/rubyrun_buffer_mgr__.rb +49 -0
  82. data/lib/rubyrun/rubyrun_commander__.rb +196 -0
  83. data/lib/rubyrun/rubyrun_dad__.rb +35 -0
  84. data/lib/rubyrun/rubyrun_globals.rb +51 -0
  85. data/lib/rubyrun/rubyrun_html__.rb +136 -0
  86. data/lib/rubyrun/rubyrun_html_writer__.rb +64 -0
  87. data/lib/rubyrun/rubyrun_initializer__.rb +286 -0
  88. data/lib/rubyrun/rubyrun_instrumentor__.rb +226 -0
  89. data/lib/rubyrun/rubyrun_monitor__.rb +237 -0
  90. data/lib/rubyrun/rubyrun_report__.rb +109 -0
  91. data/lib/rubyrun/rubyrun_rss__.rb +97 -0
  92. data/lib/rubyrun/rubyrun_tracer__.rb +79 -0
  93. data/lib/rubyrun/rubyrun_utils__.rb +98 -0
  94. data/lib/rubyrun/rubyrunnative__.bundle +0 -0
  95. data/lib/rubyrunm.rb +10 -0
  96. metadata +149 -0
@@ -0,0 +1,79 @@
1
+ #---------------------------------------------------------------#
2
+ # #
3
+ # (C) Copyright Rubysophic Inc. 2007-2008 #
4
+ # All rights reserved. #
5
+ # #
6
+ # Use, duplication or disclosure of the code is not permitted #
7
+ # unless licensed. #
8
+ # #
9
+ # Last Updated: 7/09/08 #
10
+ #---------------------------------------------------------------#
11
+ # #
12
+ # RubyRunTracer__ is the module for tracing a line of data #
13
+ # in the output destination. #
14
+ # #
15
+ # The source of the trace can be data from forward-tracing #
16
+ # or data collected from a stack trace. #
17
+ # #
18
+ #---------------------------------------------------------------#
19
+ module RubyRunTracer__
20
+
21
+ require 'rubyrun_globals'
22
+ require 'rubyrun_utils__'
23
+ require 'rubyrun_html__'
24
+ include RubyRunGlobals
25
+ include RubyRunUtils__
26
+ include RubyRunHTML__
27
+
28
+ # 1. If arguments are required to trace, try using kernel inspect to print it
29
+ # 2. If obejct is required to trace, try using kernel inspect to print it.
30
+ # Otherwise print class name, The inspect can cause recursion and blow up
31
+ # ruby. Rescue only delays the issue hence not used here.
32
+ # 3. Show the last caller and line
33
+ def enter_trace(tid, type, obj, invoker, klass, mid, *args)
34
+ @rubyrun_trace_odd_row = true if @rubyrun_trace_odd_row == nil
35
+ cur_time = Time.now
36
+ html_content = sprintf("#{@rubyrun_trace_odd_row ? METHOD_TRACE_ODD_ROW : METHOD_TRACE_EVEN_ROW}",
37
+ "#{cur_time.strftime("%H:%M:%S")}.#{("%.3f" % cur_time.to_f).split('.')[1]} #{cur_time.strftime("%m/%d/%y")}",
38
+ get_thread_id,
39
+ "#{type.split(' ').reverse.first}",
40
+ "#{type.split(' ').length == 3 ? '#3B9C9C' : (@rubyrun_trace_odd_row ? '#AFDCEC' : 'white')}",
41
+ "#{type.split(' ').length == 1 ? '' : (type.split(' ').length == 3 ? '*'+type.split(' ').reverse[1]+'s' : type.split(' ').reverse[1]+'s')}",
42
+ klass.to_s,
43
+ return_method_name(mid),
44
+ "#{args.each {|arg| arg.inspect} if $rubyrun_debug_args || is_in_hash?($rubyrun_adapter_hash, klass, mid)}",
45
+ "#{$rubyrun_debug_obj && obj ? obj.inspect : obj.class if obj}",
46
+ "#{invoker if invoker}")
47
+ write_trace(html_content)
48
+ @rubyrun_trace_odd_row = !@rubyrun_trace_odd_row
49
+ end
50
+
51
+ # Write a trace entry to the trace destination
52
+ def write_trace(html_content)
53
+ begin
54
+ $rubyrun_tracer.info(html_content)
55
+ rescue Exception => e
56
+ $rubyrun_logger.warn(e.to_s)
57
+ end
58
+ end
59
+
60
+ # The stack trace global hash is printed out in the rubyrun log in
61
+ # thread id order, also showing the top stack of all these
62
+ # threads before they were interrupted.
63
+ def back_trace_all(th_data_hash)
64
+ $rubyrun_thread_dump_reporter.info "----- RubyRun Thread Dump STARTS-----"
65
+ $rubyrun_thread_stack.each {|th, stack|
66
+ $rubyrun_thread_dump_reporter.info
67
+ thread_id = get_thread_id(th)
68
+ $rubyrun_thread_dump_reporter.info "Thread ID = #{thread_id}"
69
+ $rubyrun_thread_dump_reporter.info " Last line before interrupt: #{get_top_stack(th_data_hash, thread_id)}"
70
+ $rubyrun_thread_dump_reporter.info " Stack trace at interrupt"
71
+ stack.each {|line|
72
+ $rubyrun_thread_dump_reporter.info "\t#{line}"
73
+ }
74
+ }
75
+ $rubyrun_thread_dump_reporter.info
76
+ $rubyrun_thread_dump_reporter.info "----- RubyRun Thread Dump ENDS -----"
77
+ $rubyrun_thread_stack.clear
78
+ end
79
+ end
@@ -0,0 +1,98 @@
1
+ #---------------------------------------------------------------#
2
+ # #
3
+ # (C) Copyright Rubysophic Inc. 2007-2008 #
4
+ # All rights reserved. #
5
+ # #
6
+ # Use, duplication or disclosure of the code is not permitted #
7
+ # unless licensed. #
8
+ # #
9
+ # Last Updated: 7/09/08 #
10
+ #---------------------------------------------------------------#
11
+ # #
12
+ # RubyRunUtils__ is a module that owns common methods shared #
13
+ # by all the other RubyRun modules. #
14
+ # #
15
+ #---------------------------------------------------------------#
16
+ module RubyRunUtils__
17
+
18
+ require 'rubyrun_globals'
19
+ include RubyRunGlobals
20
+
21
+ # Return a readable thread ID for the current thread of execution
22
+ def get_thread_id(th=Thread.current)
23
+ th.inspect.split(/Thread:0x/)[1].split(/ .*?>/)[0]
24
+ end
25
+
26
+ # Retrieve caller details (filename, line number, method name)
27
+ def get_caller_detail(n=3)
28
+ caller(0)[n].gsub("#{RUBYRUN_PREFIX}_", '').gsub('//', '/')
29
+ end
30
+
31
+ # Environment variable not defined or defined with nil value is deemed to
32
+ # be non-existent
33
+ def env_var_exists?(var)
34
+ ENV[var].nil? || ENV[var] == '' ? false : true
35
+ end
36
+
37
+ # Error exit
38
+ def fatal_exit(e)
39
+ $stderr.print e.to_s + "\n" + e.backtrace.join("\n")
40
+ exit(-1)
41
+ end
42
+
43
+ # Return true if a Rails Action Controller class
44
+ # A module or object has no superclass hence the rescue clause
45
+ def is_rails_controller?(klass, mid)
46
+ return true if $rubyrun_controller_classes.include?(klass)
47
+ $rubyrun_rails_env ||= ENV['RAILS_ENV']
48
+ begin
49
+ ($rubyrun_controller_classes << klass; return true) if $rubyrun_rails_env &&
50
+ klass.to_s[-10, 10] == 'Controller' &&
51
+ is_application_controller(klass) &&
52
+ !klass.private_instance_methods(false).include?(return_method_name(mid))
53
+ rescue
54
+ end
55
+ false
56
+ end
57
+
58
+ # Given a class, it's deemed to be a Rails Action Controller if one of its
59
+ # ancestors is ApplicationController
60
+ def is_application_controller(klass)
61
+ return false unless klass.superclass
62
+ if klass.superclass == ApplicationController
63
+ return true
64
+ else
65
+ is_application_controller(klass.superclass)
66
+ end
67
+ end
68
+
69
+ # Return false if the passed in hash is empty
70
+ # Return false if the hash doenst even have the class name as a key
71
+ # Return true if the hash has the key but the method array is empty
72
+ # Return true if the method array has a case-insensitive matching name,
73
+ # matching can be exact or 'include'.
74
+ # Otherwise return false
75
+ def is_in?(hash, klass, mid, mode='loose')
76
+ return false if hash.empty?
77
+ [klass.to_s, klass.class.to_s, '*'].each {|name|
78
+ if hash.has_key?(name)
79
+ return true if hash[name].empty?
80
+ method_name = return_method_name(mid)
81
+ hash[name].each {|meth_name|
82
+ case mode
83
+ when 'strict'
84
+ return true if method_name.downcase == meth_name.downcase
85
+ when 'loose'
86
+ return true if method_name.downcase.include?(meth_name.downcase)
87
+ end
88
+ }
89
+ end
90
+ }
91
+ false
92
+ end
93
+
94
+ # Return method name since mid can be an method object ID or a string
95
+ def return_method_name(mid)
96
+ mid.kind_of?(String) ? mid : mid.id2name
97
+ end
98
+ end
Binary file
data/lib/rubyrunm.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'rubyrun'
2
+ require 'rubyrun_buffer_mgr__'
3
+ require 'rubyrun_dad__'
4
+ require 'rubyrun_globals'
5
+ require 'rubyrun_instrumentor__'
6
+ require 'rubyrun_monitor__'
7
+ require 'rubyrun_rss__'
8
+ require 'rubyrun_tracer__'
9
+ require 'rubyrun_utils__'
10
+
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: rubyrun
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.9.0
7
+ date: 2008-07-27 00:00:00 -07:00
8
+ summary: Software to diagnose and tune Ruby and Rails based applications
9
+ require_paths:
10
+ - .
11
+ - lib
12
+ - lib/rubyrun
13
+ email: info@rubysophic.com
14
+ homepage: http://www.rubysophic.com
15
+ rubyforge_project: rubyrunce
16
+ description: rubyrun is diagnostic software provided by RubySophic Inc to diagnose Ruby and Ruby/Rails based applications problems For more information, refer to the document in docs/RubyRun.htm bundled with the gem on usage, support, license etc
17
+ autorequire: rubyrunm
18
+ default_executable:
19
+ bindir: bin
20
+ has_rdoc: true
21
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
22
+ requirements:
23
+ - - ">"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.0
26
+ version:
27
+ platform: powerpc-darwin
28
+ signing_key:
29
+ cert_chain:
30
+ post_install_message:
31
+ authors:
32
+ - RubySophic Inc
33
+ files:
34
+ - Rakefile
35
+ - README
36
+ - LICENSE
37
+ - lib/rubyrun
38
+ - lib/rubyrun/rubyrun.rb
39
+ - lib/rubyrun/rubyrunnative__.bundle
40
+ - lib/rubyrun/rubyrun_buffer_mgr__.rb
41
+ - lib/rubyrun/rubyrun_commander__.rb
42
+ - lib/rubyrun/rubyrun_dad__.rb
43
+ - lib/rubyrun/rubyrun_globals.rb
44
+ - lib/rubyrun/rubyrun_html_writer__.rb
45
+ - lib/rubyrun/rubyrun_html__.rb
46
+ - lib/rubyrun/rubyrun_initializer__.rb
47
+ - lib/rubyrun/rubyrun_instrumentor__.rb
48
+ - lib/rubyrun/rubyrun_monitor__.rb
49
+ - lib/rubyrun/rubyrun_report__.rb
50
+ - lib/rubyrun/rubyrun_rss__.rb
51
+ - lib/rubyrun/rubyrun_tracer__.rb
52
+ - lib/rubyrun/rubyrun_utils__.rb
53
+ - lib/rubyrunm.rb
54
+ - bin/confgure
55
+ - ext/extconf.rb
56
+ - ext/rubyrunnative__.bundle
57
+ - ext/rubyrunnative__.c
58
+ - ext/rubyrunnative__.def
59
+ - ext/rubyrunnative__.h
60
+ - ext/rubyrunnative__.so
61
+ - ext/rubyrunnative__linux.so
62
+ - docs/rubyrun-0.9.0.htm
63
+ - docs/rubyrun-0.9.0.pdf
64
+ - docs/rubyrun-0.9.0_files
65
+ - docs/rubyrun-0.9.0_files/colorschememapping.xml
66
+ - docs/rubyrun-0.9.0_files/filelist.xml
67
+ - docs/rubyrun-0.9.0_files/header.htm
68
+ - docs/rubyrun-0.9.0_files/image001.jpg
69
+ - docs/rubyrun-0.9.0_files/image002.jpg
70
+ - docs/rubyrun-0.9.0_files/image003.jpg
71
+ - docs/rubyrun-0.9.0_files/image004.jpg
72
+ - docs/rubyrun-0.9.0_files/image005.jpg
73
+ - docs/rubyrun-0.9.0_files/image006.jpg
74
+ - docs/rubyrun-0.9.0_files/image007.jpg
75
+ - docs/rubyrun-0.9.0_files/image008.jpg
76
+ - docs/rubyrun-0.9.0_files/image009.jpg
77
+ - docs/rubyrun-0.9.0_files/image010.jpg
78
+ - docs/rubyrun-0.9.0_files/image011.jpg
79
+ - docs/rubyrun-0.9.0_files/image012.jpg
80
+ - docs/rubyrun-0.9.0_files/image013.jpg
81
+ - docs/rubyrun-0.9.0_files/image014.jpg
82
+ - docs/rubyrun-0.9.0_files/image015.jpg
83
+ - docs/rubyrun-0.9.0_files/image016.jpg
84
+ - docs/rubyrun-0.9.0_files/image017.png
85
+ - docs/rubyrun-0.9.0_files/image018.jpg
86
+ - docs/rubyrun-0.9.0_files/image019.jpg
87
+ - docs/rubyrun-0.9.0_files/image020.jpg
88
+ - docs/rubyrun-0.9.0_files/image021.jpg
89
+ - docs/rubyrun-0.9.0_files/image022.png
90
+ - docs/rubyrun-0.9.0_files/themedata.thmx
91
+ - etc/rubyrun_opts.yml
92
+ - html/classes
93
+ - html/classes/Module.html
94
+ - html/classes/Object.html
95
+ - html/classes/RubyRunBufferMgr__.html
96
+ - html/classes/RubyRunCommander__.html
97
+ - html/classes/RubyRunDad__.html
98
+ - html/classes/RubyRunGlobals.html
99
+ - html/classes/RubyRunHTMLWriter
100
+ - html/classes/RubyRunHTMLWriter/RubyRunHTMLDevice.html
101
+ - html/classes/RubyRunHTMLWriter.html
102
+ - html/classes/RubyRunHTML__.html
103
+ - html/classes/RubyRunInitializer__.html
104
+ - html/classes/RubyRunInstrumentor__.html
105
+ - html/classes/RubyRunMonitor__.html
106
+ - html/classes/RubyRunReport__.html
107
+ - html/classes/RubyRunRSS.html
108
+ - html/classes/RubyRunTracer__.html
109
+ - html/classes/RubyRunUtils__.html
110
+ - html/created.rid
111
+ - html/files
112
+ - html/files/lib
113
+ - html/files/lib/rubyrun
114
+ - html/files/lib/rubyrun/rubyrun_buffer_mgr___rb.html
115
+ - html/files/lib/rubyrun/rubyrun_commander___rb.html
116
+ - html/files/lib/rubyrun/rubyrun_dad___rb.html
117
+ - html/files/lib/rubyrun/rubyrun_globals_rb.html
118
+ - html/files/lib/rubyrun/rubyrun_html_writer___rb.html
119
+ - html/files/lib/rubyrun/rubyrun_html___rb.html
120
+ - html/files/lib/rubyrun/rubyrun_initializer___rb.html
121
+ - html/files/lib/rubyrun/rubyrun_instrumentor___rb.html
122
+ - html/files/lib/rubyrun/rubyrun_monitor___rb.html
123
+ - html/files/lib/rubyrun/rubyrun_rb.html
124
+ - html/files/lib/rubyrun/rubyrun_report___rb.html
125
+ - html/files/lib/rubyrun/rubyrun_rss___rb.html
126
+ - html/files/lib/rubyrun/rubyrun_tracer___rb.html
127
+ - html/files/lib/rubyrun/rubyrun_utils___rb.html
128
+ - html/files/lib/rubyrunm_rb.html
129
+ - html/files/LICENSE.html
130
+ - html/files/README.html
131
+ - html/fr_class_index.html
132
+ - html/fr_file_index.html
133
+ - html/fr_method_index.html
134
+ - html/index.html
135
+ - html/rdoc-style.css
136
+ test_files: []
137
+
138
+ rdoc_options: []
139
+
140
+ extra_rdoc_files:
141
+ - README
142
+ executables: []
143
+
144
+ extensions: []
145
+
146
+ requirements: []
147
+
148
+ dependencies: []
149
+