rbtrace 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rbtrace'
3
- s.version = '0.1.0'
3
+ s.version = '0.2.0'
4
4
  s.homepage = 'http://github.com/tmm1/rbtrace'
5
5
 
6
6
  s.authors = "Aman Gupta"
@@ -13,6 +13,8 @@ Gem::Specification.new do |s|
13
13
  s.executables << 'rbtrace'
14
14
 
15
15
  s.add_dependency 'ffi'
16
+ s.add_dependency 'trollop'
16
17
 
17
18
  s.summary = 'rbtrace: like strace but for ruby code'
19
+ s.description = 'rbtrace shows you method calls happening inside another ruby process in real time.'
18
20
  end
data/server.rb CHANGED
@@ -2,6 +2,7 @@ require 'ext/rbtrace'
2
2
 
3
3
  class String
4
4
  def multiply_vowels(num)
5
+ @test = 123
5
6
  gsub(/[aeiou]/){ |m| m*num }
6
7
  end
7
8
  end
data/test.sh ADDED
@@ -0,0 +1,32 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ make -C ext 2>&1 >/dev/null
5
+ ruby server.rb &
6
+ export PID=$!
7
+
8
+ trap cleanup SIGINT SIGTERM
9
+ cleanup() {
10
+ kill $PID
11
+ wait $PID || true
12
+ }
13
+
14
+ trace() {
15
+ echo ------------------------------------------
16
+ echo ./bin/rbtrace -p $PID $*
17
+ echo ------------------------------------------
18
+ ./bin/rbtrace -p $PID -r 3 $* &
19
+ sleep 2
20
+ kill $!
21
+ wait $! || true
22
+ echo
23
+ }
24
+
25
+ trace -m sleep
26
+ trace -m sleep Dir.chdir Dir.pwd Process.pid "String#gsub" "String#*"
27
+ trace -m "Kernel#"
28
+ trace -m "String#gsub(self,@test)" "String#*(self,__source__)" "String#multiply_vowels(self,self.length,num)"
29
+ trace --slow=250
30
+ trace --firehose
31
+
32
+ cleanup
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtrace
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Aman Gupta
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-14 00:00:00 -08:00
18
+ date: 2011-02-15 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -32,7 +32,21 @@ dependencies:
32
32
  version: "0"
33
33
  type: :runtime
34
34
  version_requirements: *id001
35
- description:
35
+ - !ruby/object:Gem::Dependency
36
+ name: trollop
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ description: rbtrace shows you method calls happening inside another ruby process in real time.
36
50
  email: aman@tmm1.net
37
51
  executables:
38
52
  - rbtrace
@@ -44,11 +58,12 @@ files:
44
58
  - Gemfile
45
59
  - README.md
46
60
  - bin/rbtrace
61
+ - ext/.gitignore
47
62
  - ext/extconf.rb
48
63
  - ext/rbtrace.c
49
- - ext/test.rb
50
64
  - rbtrace.gemspec
51
65
  - server.rb
66
+ - test.sh
52
67
  has_rdoc: true
53
68
  homepage: http://github.com/tmm1/rbtrace
54
69
  licenses: []
@@ -1,57 +0,0 @@
1
- class Test
2
- def call
3
- self[:a] = :b
4
- end
5
- def []=(k,v)
6
- Another.new.call
7
- :ok
8
- end
9
- end
10
-
11
- class Another
12
- def call
13
- self[:a] = :b
14
- end
15
- def []=(key, value)
16
- (@hash ||= {})[key]=value
17
- end
18
- end
19
-
20
- module Do
21
- module It
22
- def something
23
- end
24
- end
25
- end
26
-
27
- class Slow
28
- include Do::It
29
- def self.something
30
- sleep 0.01
31
- end
32
- end
33
-
34
- require 'rbtrace'
35
- rbtrace 'Slow.something'
36
- rbtrace 'Do::It#something'
37
- rbtrace '[]='
38
- rbtrace 'call'
39
-
40
- 1.times do
41
- Slow.something
42
- Slow.new.something
43
- Test.new.call
44
- end
45
-
46
- __END__
47
-
48
- Slow.something <10047>
49
- Do::It#something <4>
50
- Test#call
51
- Test#[]=
52
- Another#call
53
- Another#[]= <4>
54
- <14>
55
- <28>
56
- <40>
57
-