backtracer 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/bin/backtracer +10 -0
- data/bin/backtracer~ +7 -0
- data/lib/backtracer.rb +1 -1
- data/lib/backtracer_ping.rb +27 -4
- metadata +15 -3
data/Rakefile
CHANGED
@@ -7,7 +7,8 @@ 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
|
10
|
+
gemspec.add_dependency 'sane', '>= 0.9.1'
|
11
|
+
gemspec.add_dependency 'xray'
|
11
12
|
end
|
12
13
|
rescue LoadError
|
13
14
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/bin/backtracer
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# gems will fill this in for me
|
3
|
+
|
4
|
+
if true # (ARGV.include? '-h') || (ARGV.include? '--help')
|
5
|
+
dir = File.dirname(__FILE__) + '/../lib'
|
6
|
+
puts 'options: ( -r filename) '
|
7
|
+
for file in Dir[dir + '/*.rb']
|
8
|
+
puts File.basename(file)
|
9
|
+
end
|
10
|
+
end
|
data/bin/backtracer~
ADDED
data/lib/backtracer.rb
CHANGED
data/lib/backtracer_ping.rb
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
require 'pp'
|
2
|
+
require 'sane/os'
|
3
|
+
|
4
|
+
def xray
|
5
|
+
require 'xray'
|
6
|
+
proc { Process.kill "QUIT", Process.pid; '' }
|
7
|
+
end
|
2
8
|
|
3
9
|
if Thread.current.respond_to? :backtrace
|
4
10
|
fella = proc {
|
@@ -9,17 +15,34 @@ if Thread.current.respond_to? :backtrace
|
|
9
15
|
out
|
10
16
|
}
|
11
17
|
elsif respond_to? :caller_for_all_threads
|
12
|
-
|
13
|
-
|
14
|
-
|
18
|
+
if OS.windows?
|
19
|
+
fella = proc {
|
20
|
+
caller_for_all_threads
|
21
|
+
}
|
22
|
+
else
|
23
|
+
fella = xray
|
24
|
+
end
|
15
25
|
else
|
16
|
-
|
26
|
+
# weak sauce for the old school users :)
|
27
|
+
if OS.windows?
|
28
|
+
|
29
|
+
trap("ILL") { puts "All threads:" + Thread.list.inspect, "Current thread:" + Thread.current.to_s, caller } # puts current thread caller
|
30
|
+
fella = proc { Process.kill "ILL", Process.pid } # send myself a signal
|
31
|
+
else
|
32
|
+
fella = xray
|
33
|
+
end
|
34
|
+
|
17
35
|
end
|
18
36
|
|
19
37
|
time = $ping_interval || 5 # seconds
|
38
|
+
time = 1 if $0 == __FILE__
|
20
39
|
Thread.new {
|
21
40
|
loop {
|
22
41
|
sleep time
|
23
42
|
pp fella.call
|
24
43
|
}
|
25
44
|
}
|
45
|
+
|
46
|
+
if $0 == __FILE__ # a test
|
47
|
+
sleep
|
48
|
+
end
|
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.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors: []
|
7
7
|
|
@@ -16,6 +16,16 @@ dependencies:
|
|
16
16
|
name: sane
|
17
17
|
type: :runtime
|
18
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
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: xray
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
19
29
|
version_requirements: !ruby/object:Gem::Requirement
|
20
30
|
requirements:
|
21
31
|
- - ">="
|
@@ -24,8 +34,9 @@ dependencies:
|
|
24
34
|
version:
|
25
35
|
description: Quality backtraces for ruby
|
26
36
|
email: rogerdpack@gmail.com
|
27
|
-
executables:
|
28
|
-
|
37
|
+
executables:
|
38
|
+
- backtracer
|
39
|
+
- backtracer~
|
29
40
|
extensions: []
|
30
41
|
|
31
42
|
extra_rdoc_files:
|
@@ -34,6 +45,7 @@ files:
|
|
34
45
|
- README
|
35
46
|
- Rakefile
|
36
47
|
- VERSION
|
48
|
+
- bin/backtracer
|
37
49
|
- examples/crash.rb
|
38
50
|
- examples/crash_longer.rb
|
39
51
|
- examples/example_test_all_output
|