backtracer 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +57 -52
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/bin/backtracer +6 -4
- data/examples/example_test_all_output +44 -27
- data/examples/example_test_large_output +45 -42
- data/examples/pinger_example +30 -0
- data/examples/run_all_styles_of_backtracer.rb +5 -4
- data/examples/run_large_style_output.rb +3 -1
- data/examples/sleeper.rb +4 -0
- data/lib/backtracer.rb +13 -8
- data/lib/{backtracer_ping.rb → backtracer_pinger.rb} +6 -3
- data/lib/core_backtracer.rb +1 -1
- metadata +5 -13
data/README
CHANGED
@@ -1,25 +1,40 @@
|
|
1
|
-
backtracer:
|
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
|
-
|
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
|
-
|
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
|
-
|
12
|
+
Examples:
|
13
13
|
|
14
|
-
a script that
|
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
|
-
|
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
|
-
|
47
|
+
(displays locals, parameters kind of)
|
46
48
|
|
47
|
-
|
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
|
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
|
-
|
60
|
-
$ backtracer
|
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 #
|
65
|
-
$ gem
|
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
|
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
|
-
|
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
|
-
==
|
107
|
-
|
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
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
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 '
|
11
|
-
puts '
|
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
|
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
|
-
|
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
|
-
|
11
|
-
crash.rb:
|
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
|
-
|
17
|
-
crash.rb
|
18
|
-
|
19
|
-
|
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
|
-
|
23
|
-
crash.rb:
|
24
|
-
|
25
|
-
crash.rb:
|
26
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|#0:crash.rb:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
|
18
|
-
args were []
|
19
|
-
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
| | |#0:crash.rb:2:
|
25
|
-
|
26
|
-
|
27
|
-
| | |#0:crash.rb:2:
|
28
|
-
| | | |#0:crash.rb:2:Exception:>: raise
|
29
|
-
args were []
|
30
|
-
| | |#0:crash.rb:2:Exception:<: raise
|
31
|
-
| | |#0:crash.rb:2:
|
32
|
-
|
33
|
-
|#0:crash.rb:
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
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
|
-
|
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
|
-
|
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
|
data/examples/sleeper.rb
ADDED
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
|
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
|
12
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
data/lib/core_backtracer.rb
CHANGED
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
|
+
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-
|
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/
|
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
|