backtracer 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,25 +1,40 @@
1
- backtracer: ruby gem to output higher quality backtraces if an unhandled exception is thrown.
1
+ backtracer: gem to output higher quality backtraces if an unhandled exception occurs.
2
2
 
3
3
 
4
4
  If you've ever seen
5
5
  ...24 levels...
6
6
  and disliked it, this is the gem for you.
7
7
 
8
- It displays the full back trace, with or without code and/or local variables, etc.
8
+ If you've ever wished an exception printout would display the code of the lines in a backtrace (a la Python), this is for you.
9
9
 
10
- There are several options available.
10
+ It displays the full back trace (no ...'s), along with the code from each line! It can even display local variables at each level of the call stack, if desired.
11
11
 
12
- example:
12
+ Examples:
13
13
 
14
- a script that used to output:
15
-
16
- >ruby crash.rb
14
+ a script that once output:
15
+ $ ruby crash.rb
17
16
  crash.rb:2:in `go2': unhandled exception
18
17
  from crash.rb:6:in `go'
19
18
  from crash.rb:9
20
19
 
21
20
  Now outputs:
22
- >backtracer --locals crash.rb
21
+
22
+ $ backtracer crash.rb
23
+
24
+ RuntimeError
25
+ crash.rb:2:in `go2'
26
+ raise
27
+ crash.rb:7:in `go'
28
+ go2(a, 55)
29
+ crash.rb:10
30
+ go '3'
31
+
32
+
33
+ (Note--has the code lines, and if there had been ...'s, would have ovecome them).
34
+
35
+ or the --locals option
36
+
37
+ $backtracer --locals crash.rb
23
38
 
24
39
  unhandled exception: crash.rb:2: raise
25
40
  locals: {"a"=>"3", "b"=>55}
@@ -28,85 +43,75 @@ unhandled exception: crash.rb:2: raise
28
43
  locals: {"a"=>"3", "b"=>55}
29
44
  crash.rb:5 go(a=>3)
30
45
  locals: {"a"=>"3"}
31
- or
32
- >backtracer crash.rb
33
- ====
34
- crash.rb:2:in `go2'
35
- raise
36
- crash.rb:7:in `go'
37
- go2(a, 55)
38
- crash.rb:10
39
- go '3'
40
- ====
41
- crash.rb:2:in `go2': unhandled exception
42
- from crash.rb:7:in `go'
43
- from crash.rb:10
44
46
 
45
- Also included is a --ping option which periodically dumps the current running threads' backtrace(s)--quite useful for figuring out where you code is spending a lot of its time.
47
+ (displays locals, parameters kind of)
46
48
 
47
- To see all possible options run
49
+ Also included is a --ping option, which periodically dumps current threads' backtrace(s)--quite useful for profiling to see where you code is spending a lot of its time (thanks xray gem!). There is also an option that will print out thread dumps whenever you hit ctrl+c.
50
+
51
+ To see all possible backtrace options run
48
52
  $ backtracer -h
53
+ or
54
+ $ backtracer --help
55
+
56
+
57
+ More example outputs:
58
+
59
+ http://github.com/rdp/backtracer/blob/master/examples/example_test_all_output
60
+ http://github.com/rdp/backtracer/blob/master/examples/example_test_large_output
61
+ http://github.com/rdp/backtracer/blob/master/examples/pinger_example
49
62
 
50
63
  == Installation ==
51
64
 
52
65
  == 1.8.x ==
53
66
 
54
- $ gem install ruby-debug
55
- $ gem sources add http://gemcutter.org # if necessary
67
+ $ gem install ruby-debug # only necessary for the --locals option
68
+ $ gem install jeweler && jeweler tumble # if necessary
56
69
  $ gem install backtracer
57
70
 
58
71
  now run like
59
- $ backtracer script_name
60
- $ backtracer --locals script_name
72
+
73
+ $ backtracer script_name.rb
74
+ $ backtracer --locals script_name.rb arg1 arg2
61
75
 
62
76
  == 1.9.1 ==
63
77
 
64
- $ gem install ruby-debug19 # if you want some of the more exotic backtraces
65
- $ gem sources add http://gemcutter.org # if necessary
78
+ $ gem install ruby-debug19 # only necessary for the --locals option
79
+ $ gem install jeweler && jeweler tumble # if necessary
66
80
  $ gem install backtracer
67
81
 
68
82
  run as above (backtracer executable), or as a ruby require:
69
83
  $ ruby -rbacktracer script_name
70
84
  $ ruby -rbacktracer_locals script_name
71
85
 
72
- == Descriptions ==
73
-
74
- Try out the options:
75
- create a file like
76
-
77
- def go(a)
78
- raise
79
- end
80
- go(3)
81
-
82
- then run backtracer against it.
83
-
84
86
  == Other ==
85
87
 
86
- Note that you can load the better backtracing capability within a script itself:
88
+ Note that you can load backtracing capability within a script itself by:
87
89
 
88
90
  require 'backtracer'
89
91
 
90
- will cause it to output a coded backtrace at exit time, if an unhandled exception occurs. Backtracer default and backtracer_simple don't cause runtime slowdown.
92
+ which will cause it to output a coded backtrace at exit time, if an unhandled exception occurs. Backtracer default and backtracer_simple don't cause runtime slowdown, so sometimes you just want to add this by default. If so, then add it to your RUBYOPT variable. (Once I did this, I wondered why I would ever want anything else). Here's how:
91
93
 
92
- You can also add it to your RUBYOPT variable if you always want it to run against all scripts (backtracer_simple and backtracer don't cause any slowdowns).
93
- Here's how:
94
94
  1.9:
95
95
 
96
96
  $ export RUBYOPT=-rbacktracer
97
+ or
98
+ $ export RUBYOPT=-rbacktracer_simple # or whichever one you want
99
+
100
+ 1.8:
97
101
 
98
- 1.8.7:
99
- you'll need to install a helper loader since gems can't load on the command line for some reason.
102
+ you'll need to install a helper gem since rubygems can't load both itself and a gem on the command line for some reason.
100
103
 
101
- $ sudo gem install faster_rubygems # the helper--installs faster_rubygems.rb and some other files to your site_ruby
104
+ $ sudo gem install faster_rubygems # the helper--installs faster_rubygems.rb and some other files to your site_ruby dir
102
105
  $ export RUBYOPT='-rfaster_rubygems -rbacktracer'
106
+ or
107
+ $ export RUBYOPT='-rfaster_rubygems -rbacktracer_simple'
103
108
 
104
109
  Enjoy.
105
110
 
106
- == Related projects ==
107
- unroller, http://eigenclass.org/hiki/method+arguments+via+introspection, liveconsole, ruby-debug
111
+ == Other related projects ==
112
+
113
+ unroller, http://eigenclass.org/hiki/method+arguments+via+introspection, liveconsole, ruby-debug (thanks guys!)
108
114
 
109
- Comments welcome
110
- rdp on github.
115
+ Comments welcome.
111
116
 
112
117
  http://github.com/rdp/backtracer
data/Rakefile CHANGED
@@ -7,7 +7,6 @@ begin
7
7
  # gemspec.homepage = "http://github.com/technicalpickles/the-perfect-gem"
8
8
  # gemspec.description = "TODO"
9
9
  # gemspec.authors = ["Josh Nichols"]
10
- gemspec.add_dependency 'sane', '>= 0.9.1'
11
10
  gemspec.add_dependency 'xray'
12
11
  end
13
12
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.5.0
data/bin/backtracer CHANGED
@@ -7,8 +7,9 @@ if (ARGV.include? '-h') || (ARGV.include? '--help')
7
7
  puts '--' + File.basename(file)[11..-4] # of backtracer_locals.rb, just locals
8
8
  end
9
9
  puts 'ex: $ backtracer filename.rb arg1 arg2'
10
- puts 'ex: $ backtracer --simple filename.rb arg1 arg2'
11
- puts 'you can also do $ ruby -rtracerr for an improved tracer (though 1.9.2 has the same already patched)'
10
+ puts '$ backtracer --simple filename.rb arg1 arg2'
11
+ puts 'or its equivalent: $ ruby -rbacktracer_simple filename.rb arg1 arg2'
12
+ puts '$ ruby -rtracerr'
12
13
  exit
13
14
  end
14
15
 
@@ -22,6 +23,7 @@ else
22
23
  require 'backtracer'
23
24
  end
24
25
 
25
- $0 = File.expand_path ARGV[0] # for their benefit :)
26
+ $0 = a = File.expand_path( ARGV[0]) # set $0 for their benefit :)
27
+ # known buggy on mingw for some reason?
26
28
  ARGV.shift
27
- load $0
29
+ load a
@@ -1,39 +1,56 @@
1
1
 
2
2
 
3
+ running ruby -rfaster_rubygems -r../lib/backtracer_ctrl_c_debugger.rb crash.rb
4
+ hit ctrl + c to drop into a debugger
3
5
 
4
- running ruby -r../backtrace_nothing_swallowed.rb crash.rb
5
- crash.rb:2:in `go2': unhandled exception
6
- from crash.rb:6:in `go'
7
- from crash.rb:9
8
- ====
6
+ RuntimeError
9
7
  crash.rb:2:in `go2'
10
- crash.rb:6:in `go'
11
- crash.rb:9
12
- ====
8
+ raise
9
+ crash.rb:7:in `go'
10
+ go2(a, 55)
11
+ crash.rb:10
12
+ go '3'
13
13
 
14
+ crash.rb:2:in `go2': unhandled exception
15
+ from crash.rb:7:in `go'
16
+ from crash.rb:10
14
17
 
15
18
 
16
- running ruby -r../backtrace_with_code.rb crash.rb
17
- crash.rb:2:in `go2': unhandled exception
18
- from crash.rb:6:in `go'
19
- from crash.rb:9
20
- ====
19
+
20
+ running ruby -rfaster_rubygems -r../lib/backtracer_locals.rb crash.rb
21
+
22
+ unhandled exception: crash.rb:2: raise
23
+ locals: {"a"=>"3", "b"=>55}
24
+ from:
25
+ crash.rb:1 go2(a=>3, b=>55)
26
+ locals: {"a"=>"3", "b"=>55}
27
+ crash.rb:5 go(a=>3)
28
+ locals: {"a"=>"3", "b"=>3}
29
+
30
+
31
+
32
+ running ruby -rfaster_rubygems -r../lib/backtracer_ping.rb crash.rb
33
+
34
+ RuntimeError
21
35
  crash.rb:2:in `go2'
22
- raise
23
- crash.rb:6:in `go'
24
- go2(a, 55);
25
- crash.rb:9
26
- go '3'
27
- ====
36
+ raise
37
+ crash.rb:7:in `go'
38
+ go2(a, 55)
39
+ crash.rb:10
40
+ go '3'
28
41
 
42
+ crash.rb:2:in `go2': unhandled exception
43
+ from crash.rb:7:in `go'
44
+ from crash.rb:10
29
45
 
30
46
 
31
- running ruby -r../backtrace_with_code_and_locals.rb crash.rb
32
47
 
33
- unhandled exception: crash.rb:2: raise
34
- locals: {"a"=>"3", "b"=>55}
35
- from:
36
- crash.rb:1 go2(a=>3, b=>55)
37
- locals: {"a"=>"3", "b"=>55}
38
- crash.rb:5 go(a=>3)
39
- locals: {"a"=>"3"}
48
+ running ruby -rfaster_rubygems -r../lib/backtracer_simple.rb crash.rb
49
+ ====
50
+ crash.rb:2:in `go2'
51
+ crash.rb:7:in `go'
52
+ crash.rb:10
53
+ ====
54
+ crash.rb:2:in `go2': unhandled exception
55
+ from crash.rb:7:in `go'
56
+ from crash.rb:10
@@ -1,42 +1,45 @@
1
- ruby 1.8.6 (2009-3-4 mbari 8B/0x8770 on patchlevel 287) [i686-linux]
2
- #0:crash.rb:1::-: def go2(a, b)
3
- |#0:crash.rb:1:Module:>: def go2(a, b)
4
- args were []
5
- #0:crash.rb:1:Module:<: def go2(a, b)
6
- #0:crash.rb:5::-: def go(a);
7
- |#0:crash.rb:5:Module:>: def go(a);
8
- args were []
9
- #0:crash.rb:5:Module:<: def go(a);
10
- #0:crash.rb:9::-: go '3'
11
- |#0:crash.rb:5:Object:>: def go(a);
12
- args were [["a", "3"]]
13
- |#0:crash.rb:6:Object:-: go2(a, 55);
14
- | |#0:crash.rb:1:Object:>: def go2(a, b)
15
- args were [["a", "3"], ["b", 55]]
16
- | |#0:crash.rb:2:Object:-: raise
17
- | | |#0:crash.rb:2:Kernel:>: raise
18
- args were []
19
- | | | |#0:crash.rb:2:Class:>: raise
20
- args were []
21
- | | | | |#0:crash.rb:2:Exception:>: raise
22
- args were []
23
- | | | |#0:crash.rb:2:Exception:<: raise
24
- | | |#0:crash.rb:2:Class:<: raise
25
- | | | |#0:crash.rb:2:Exception:>: raise
26
- args were []
27
- | | |#0:crash.rb:2:Exception:<: raise
28
- | | | |#0:crash.rb:2:Exception:>: raise
29
- args were []
30
- | | |#0:crash.rb:2:Exception:<: raise
31
- | | |#0:crash.rb:2:Object:R: raise
32
- | |#0:crash.rb:2:Kernel:<: raise
33
- |#0:crash.rb:3:Object:<: end
34
- #0:crash.rb:7:Object:<: end
35
-
36
- unhandled exception: crash.rb:2: raise
37
- locals: {"a"=>"3", "b"=>55}
38
- from:
39
- crash.rb:1 go2(a=>3, b=>55)
40
- locals: {"a"=>"3", "b"=>55}
41
- crash.rb:5 go(a=>3)
42
- locals: {"a"=>"3"}
1
+ running
2
+ ruby -v -r../lib/backtracer_locals.rb crash.rb
3
+ ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]
4
+ #0:crash.rb:1::-: def go2(a, b)
5
+ |#0:crash.rb:1:Module:>: def go2(a, b)
6
+ args were []
7
+ #0:crash.rb:1:Module:<: def go2(a, b)
8
+ #0:crash.rb:5::-: def go(a)
9
+ |#0:crash.rb:5:Module:>: def go(a)
10
+ args were []
11
+ #0:crash.rb:5:Module:<: def go(a)
12
+ #0:crash.rb:10::-: go '3'
13
+ |#0:crash.rb:5:Object:>: def go(a)
14
+ args were [["a", "3"]]
15
+ |#0:crash.rb:6:Object:-: b = 3
16
+ |#0:crash.rb:7:Object:-: go2(a, 55)
17
+ | |#0:crash.rb:1:Object:>: def go2(a, b)
18
+ args were [["a", "3"], ["b", 55]]
19
+ | |#0:crash.rb:2:Object:-: raise
20
+ | | |#0:crash.rb:2:Kernel:>: raise
21
+ args were []
22
+ | | | |#0:crash.rb:2:Class:>: raise
23
+ args were []
24
+ | | | | |#0:crash.rb:2:Exception:>: raise
25
+ args were []
26
+ | | | |#0:crash.rb:2:Exception:<: raise
27
+ | | |#0:crash.rb:2:Class:<: raise
28
+ | | | |#0:crash.rb:2:Exception:>: raise
29
+ args were []
30
+ | | |#0:crash.rb:2:Exception:<: raise
31
+ | | | |#0:crash.rb:2:Exception:>: raise
32
+ args were []
33
+ | | |#0:crash.rb:2:Exception:<: raise
34
+ | | |#0:crash.rb:2:Object:R: raise
35
+ | |#0:crash.rb:2:Kernel:<: raise
36
+ |#0:crash.rb:3:Object:<: end
37
+ #0:crash.rb:6:Object:<: b = 3
38
+
39
+ unhandled exception: crash.rb:2: raise
40
+ locals: {"a"=>"3", "b"=>55}
41
+ from:
42
+ crash.rb:1 go2(a=>3, b=>55)
43
+ locals: {"a"=>"3", "b"=>55}
44
+ crash.rb:5 go(a=>3)
45
+ locals: {"a"=>"3", "b"=>3}
@@ -0,0 +1,30 @@
1
+
2
+ C:\dev\ruby\old\backtracer\examples>backtracer --pinger sleeper.rb
3
+ c:/ruby18/lib/ruby/gems/1.8/gems/backtracer-0.4.1/lib/backtracer.rb:3: warning: already initialized constant WINDOZE
4
+ All threads:[#<Thread:0x3411420 run>, #<Thread:0x28b5580 run>]
5
+ Current thread:#<Thread:0x28b5580>
6
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:2:in `call'
7
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:2:in `sleep'
8
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:2:in `go'
9
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:4
10
+ c:/ruby18/lib/ruby/gems/1.8/gems/backtracer-0.4.1/bin/backtracer:29:in `load'
11
+ c:/ruby18/lib/ruby/gems/1.8/gems/backtracer-0.4.1/bin/backtracer:29
12
+ c:/ruby18/bin/backtracer:19:in `load'
13
+ c:/ruby18/bin/backtracer:19
14
+ "current stack trace"
15
+ Wed Nov 11 10:57:52 -0700 2009
16
+ 1
17
+ All threads:[#<Thread:0x3411420 run>, #<Thread:0x28b5580 run>]
18
+ Current thread:#<Thread:0x28b5580>
19
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:2:in `call'
20
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:2:in `sleep'
21
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:2:in `go'
22
+ C:/dev/ruby/old/backtracer/examples/sleeper.rb:4
23
+ c:/ruby18/lib/ruby/gems/1.8/gems/backtracer-0.4.1/bin/backtracer:29:in `load'
24
+ c:/ruby18/lib/ruby/gems/1.8/gems/backtracer-0.4.1/bin/backtracer:29
25
+ c:/ruby18/bin/backtracer:19:in `load'
26
+ c:/ruby18/bin/backtracer:19
27
+ "current stack trace"
28
+ Wed Nov 11 10:57:57 -0700 2009
29
+ 1
30
+ C:\>
@@ -1,10 +1,11 @@
1
- for file in Dir.glob("../lib/backtrace_*") do
1
+ require 'faster_rubygems'
2
+ for file in Dir.glob("../lib/backtracer_*") do
3
+ next if file =~ /_tracer/
2
4
  commands = []
3
5
  for crash_file in ['crash.rb'] do
4
- commands << "ruby -r#{file} #{crash_file}"
6
+ commands << "ruby -rfaster_rubygems -r#{file} #{crash_file}"
5
7
  end
6
- #commands << "ruby -v -r../backtrace_with_code_and_locals.rb ../crash.rb"
7
- for command in commands
8
+ for command in commands
8
9
  puts "\n\n\nrunning #{command}\n"
9
10
  system(command)
10
11
  end
@@ -1 +1,3 @@
1
- system "ruby -v -r../lib/backtrace_with_code_and_locals.rb crash.rb"
1
+ command = "ruby -v -r../lib/backtracer_locals.rb crash.rb"
2
+ puts 'running', command
3
+ system command
@@ -0,0 +1,4 @@
1
+ def go
2
+ sleep 10
3
+ end
4
+ go
data/lib/backtracer.rb CHANGED
@@ -1,30 +1,35 @@
1
1
  # this one display full BT with code, at the end [no performance loss]
2
+ require 'rbconfig'
3
+ WINDOZE = Config::CONFIG['host_os'] =~ /mswin|mingw/
2
4
 
3
5
  require File.dirname(__FILE__) + "/shared"
4
- require 'sane'
5
6
 
6
7
  at_exit {
7
- if $! && !$!.is_a?(SystemExit) # SystemExit's are just normal, not exceptional
8
+ if $! && !$!.is_a?(SystemExit) # SystemExit's are normal, not exceptional
8
9
  puts "\n " + $!.inspect + ' ' + $!.to_s
9
10
  bt2 = $!.backtrace
10
11
  backtrace_with_code = $!.backtrace.map{ |bt_line|
11
- if OS.windows? && bt_line[1..1] == ':'
12
- #["C", "/dev/ruby/allgems/lib/allgems/GemWorker.rb", "91", "in `unpack'"]
12
+ next if bt_line.include? 'bin/backtracer' # binary lines...
13
+ if WINDOZE && bt_line[1..1] == ':'
14
+
13
15
  drive, file, line, junk = bt_line.split(":")
16
+ #["C", "/dev/ruby/allgems/lib/allgems/GemWorker.rb", "91", "in `unpack'"]
14
17
  file = drive + ":" + file
15
18
  else
16
19
  file, line, junk = bt_line.split(":")
17
20
  end
18
21
  line = line.to_i
19
- # line -= 1 unless line == 0 # not sure if needed
20
22
  actual_line = Tracer.get_line(file, line)
23
+
21
24
  "#{bt_line}\n\t#{actual_line.strip if actual_line}"
22
- }
25
+ }.compact
23
26
  puts backtrace_with_code
24
- # puts "===="
27
+ puts
28
+ puts 'original backtrace:'
25
29
  else
26
- puts "(no exception found to backtrace)" if $VERBOSE
30
+ puts "(backtracer: no exception found to backtrace)" if $VERBOSE
27
31
  end
28
32
  # exit! TODO I guess do this once ours isn't *so* ugly
33
+ # I'm not sure it's safe to do that, in case there are other at_exit's [?]
29
34
  # TODO compare with that fella xray
30
35
  }
@@ -1,5 +1,9 @@
1
1
  require 'pp'
2
- require 'sane/os'
2
+
3
+
4
+ require 'rbconfig'
5
+ WINDOZE = Config::CONFIG['host_os'] =~ /mswin|mingw/
6
+
3
7
 
4
8
  def xray
5
9
  require 'xray'
@@ -24,8 +28,7 @@ elsif respond_to? :caller_for_all_threads
24
28
  end
25
29
  else
26
30
  # weak sauce for the old school users :)
27
- if OS.windows?
28
-
31
+ if WINDOZE
29
32
  trap("ILL") { puts "All threads:" + Thread.list.inspect, "Current thread:" + Thread.current.to_s, caller } # puts current thread caller
30
33
  fella = proc { Process.kill "ILL", Process.pid } # send myself a signal
31
34
  else
@@ -7,8 +7,8 @@
7
7
  require 'rubygems'
8
8
  require 'ruby-debug'
9
9
  Debugger.start # we use this to track args.
10
+ $print_trace = nil unless defined?($print_trace) # avoid warnings
10
11
 
11
- #Debugger.keep_frame_binding = true # whatever this did :P
12
12
  #
13
13
  # tracer main class
14
14
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backtracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors: []
7
7
 
@@ -9,19 +9,9 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-10 00:00:00 -07:00
12
+ date: 2009-11-11 00:00:00 -07:00
13
13
  default_executable: backtracer
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: sane
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 0.9.1
24
- version:
25
15
  - !ruby/object:Gem::Dependency
26
16
  name: xray
27
17
  type: :runtime
@@ -49,12 +39,13 @@ files:
49
39
  - examples/crash_longer.rb
50
40
  - examples/example_test_all_output
51
41
  - examples/example_test_large_output
42
+ - examples/pinger_example
52
43
  - examples/run_all_styles_of_backtracer.rb
53
44
  - examples/run_large_style_output.rb
54
45
  - lib/backtracer.rb
55
46
  - lib/backtracer_ctrl_c_debugger.rb
56
47
  - lib/backtracer_locals.rb
57
- - lib/backtracer_ping.rb
48
+ - lib/backtracer_pinger.rb
58
49
  - lib/backtracer_simple.rb
59
50
  - lib/backtracer_tracer.rb
60
51
  - lib/backtracer_tracer_args.rb
@@ -94,3 +85,4 @@ test_files:
94
85
  - examples/crash_longer.rb
95
86
  - examples/run_all_styles_of_backtracer.rb
96
87
  - examples/run_large_style_output.rb
88
+ - examples/sleeper.rb