rbtrace 0.1.0 → 0.2.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.
@@ -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
-