rbtrace 0.4.7 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a3761d428e8be7fe2d44989f4d649ddf58803273
4
+ data.tar.gz: 3b1c8033019f92df1dbe645d9b7525fa22190abf
5
+ SHA512:
6
+ metadata.gz: 74bb3fdc12bac96869edb039d7c3299e140eab13a3e592dcb61afebce79df7905c5e652392ee620f36c78f1ddc7078060528cb83308e7bd31985969ae7e32a2e
7
+ data.tar.gz: 5afab515374aec50c19dc7c42c8df838b0993bd9999d21bd473bec907a6095c9762c0983c3c358e0afefaf4d8b250d5eaabfd6308265724cd2da9e007337fdf2
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rbtrace (0.4.4)
4
+ rbtrace (0.4.7)
5
5
  ffi (>= 1.0.6)
6
6
  msgpack (>= 0.4.3)
7
7
  trollop (>= 1.16.2)
@@ -9,9 +9,9 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- ffi (1.9.3)
13
- msgpack (0.5.8)
14
- trollop (2.0)
12
+ ffi (1.9.8)
13
+ msgpack (0.6.0)
14
+ trollop (2.1.2)
15
15
 
16
16
  PLATFORMS
17
17
  ruby
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2011-2015 Aman Gupta
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -16,7 +16,7 @@ libdir = File.basename RbConfig::CONFIG['libdir']
16
16
  unless File.exists?("#{CWD}/dst/#{libdir}/libmsgpackc.a")
17
17
  Logging.message "Building msgpack\n"
18
18
 
19
- msgpack = File.basename('msgpack-0.5.7.tar.gz')
19
+ msgpack = File.basename('msgpack-1.1.0.tar.gz')
20
20
  dir = File.basename(msgpack, '.tar.gz')
21
21
  cflags, ldflags = ENV['CFLAGS'], ENV['LDFLAGS']
22
22
  cc = ENV['CC']
@@ -38,6 +38,7 @@ unless File.exists?("#{CWD}/dst/#{libdir}/libmsgpackc.a")
38
38
  if RUBY_PLATFORM =~ /darwin/ and File.exist?("/usr/bin/gcc-4.2")
39
39
  ENV['CC'] = '/usr/bin/gcc-4.2'
40
40
  end
41
+ puts " -- env CFLAGS=#{ENV['CFLAGS'].inspect} LDFLAGS=#{ENV['LDFLAGS'].inspect} CC=#{ENV['CC'].inspect}"
41
42
  sys("./configure --disable-dependency-tracking --disable-shared --with-pic --prefix=#{CWD}/dst/ --libdir=#{CWD}/dst/#{libdir}")
42
43
  sys("make install")
43
44
  end
@@ -184,8 +184,8 @@ rbtrace__send_event(int nargs, const char *name, ...)
184
184
 
185
185
  msgpack_pack_array(pk, nargs+1);
186
186
 
187
- msgpack_pack_raw(pk, strlen(name));
188
- msgpack_pack_raw_body(pk, name, strlen(name));
187
+ msgpack_pack_bin(pk, strlen(name));
188
+ msgpack_pack_bin_body(pk, name, strlen(name));
189
189
 
190
190
  if (nargs > 0) {
191
191
  int type;
@@ -238,8 +238,8 @@ rbtrace__send_event(int nargs, const char *name, ...)
238
238
  if (!str)
239
239
  str = (char *)"";
240
240
 
241
- msgpack_pack_raw(pk, strlen(str));
242
- msgpack_pack_raw_body(pk, str, strlen(str));
241
+ msgpack_pack_bin(pk, strlen(str));
242
+ msgpack_pack_bin_body(pk, str, strlen(str));
243
243
  break;
244
244
 
245
245
  default:
@@ -260,7 +260,7 @@ rbtrace__send_event(int nargs, const char *name, ...)
260
260
  #else
261
261
  0,
262
262
  #endif
263
- &rbtracer.mqo_addr, rbtracer.mqo_len
263
+ (const struct sockaddr *)&rbtracer.mqo_addr, rbtracer.mqo_len
264
264
  );
265
265
 
266
266
  if (ret == -1 && (errno == EINVAL || errno == ENOENT || errno == ECONNREFUSED || errno == EPIPE)) {
@@ -877,7 +877,7 @@ rbtrace__process_event(msgpack_object cmd)
877
877
  VALUE val = Qnil;
878
878
 
879
879
  msgpack_object_array ary;
880
- msgpack_object_raw str;
880
+ msgpack_object_str str;
881
881
 
882
882
  /* fprintf(stderr, "GOT: ");*/
883
883
  /* msgpack_object_print(stderr, cmd);*/
@@ -886,10 +886,10 @@ rbtrace__process_event(msgpack_object cmd)
886
886
  ary = cmd.via.array;
887
887
 
888
888
  if (ary.size < 1 ||
889
- ary.ptr[0].type != MSGPACK_OBJECT_RAW)
889
+ ary.ptr[0].type != MSGPACK_OBJECT_STR)
890
890
  return;
891
891
 
892
- str = ary.ptr[0].via.raw;
892
+ str = ary.ptr[0].via.str;
893
893
 
894
894
  if (0 == strncmp("attach", str.ptr, str.size)) {
895
895
  if (ary.size != 2 ||
@@ -930,11 +930,11 @@ rbtrace__process_event(msgpack_object cmd)
930
930
 
931
931
  } else if (0 == strncmp("add", str.ptr, str.size)) {
932
932
  if (ary.size != 3 ||
933
- ary.ptr[1].type != MSGPACK_OBJECT_RAW ||
933
+ ary.ptr[1].type != MSGPACK_OBJECT_STR ||
934
934
  ary.ptr[2].type != MSGPACK_OBJECT_BOOLEAN)
935
935
  return;
936
936
 
937
- str = ary.ptr[1].via.raw;
937
+ str = ary.ptr[1].via.str;
938
938
  bool is_slow = ary.ptr[2].via.boolean;
939
939
 
940
940
  strncpy(query, str.ptr, str.size);
@@ -943,10 +943,10 @@ rbtrace__process_event(msgpack_object cmd)
943
943
 
944
944
  } else if (0 == strncmp("addexpr", str.ptr, str.size)) {
945
945
  if (ary.size != 2 ||
946
- ary.ptr[1].type != MSGPACK_OBJECT_RAW)
946
+ ary.ptr[1].type != MSGPACK_OBJECT_STR)
947
947
  return;
948
948
 
949
- str = ary.ptr[1].via.raw;
949
+ str = ary.ptr[1].via.str;
950
950
 
951
951
  strncpy(query, str.ptr, str.size);
952
952
  query[str.size] = 0;
@@ -1006,10 +1006,10 @@ rbtrace__process_event(msgpack_object cmd)
1006
1006
 
1007
1007
  } else if (0 == strncmp("eval", str.ptr, str.size)) {
1008
1008
  if (ary.size != 2 ||
1009
- ary.ptr[1].type != MSGPACK_OBJECT_RAW)
1009
+ ary.ptr[1].type != MSGPACK_OBJECT_STR)
1010
1010
  return;
1011
1011
 
1012
- str = ary.ptr[1].via.raw;
1012
+ str = ary.ptr[1].via.str;
1013
1013
 
1014
1014
  strncpy(query, str.ptr, str.size);
1015
1015
  query[str.size] = 0;
@@ -1074,8 +1074,9 @@ rbtrace_gc_mark()
1074
1074
  }
1075
1075
  }
1076
1076
 
1077
- static VALUE gc_hook, signal_handler_proc;
1077
+ static VALUE gc_hook;
1078
1078
 
1079
+ #if defined(HAVE_RB_POSTPONED_JOB_REGISTER_ONE) || !defined(RUBY_VM)
1079
1080
  static void
1080
1081
  sigurg(int signal)
1081
1082
  {
@@ -1085,7 +1086,10 @@ sigurg(int signal)
1085
1086
  rbtrace__receive(0);
1086
1087
  #endif
1087
1088
  }
1089
+ #endif
1088
1090
 
1091
+ #if !defined(HAVE_RB_POSTPONED_JOB_REGISTER_ONE) && defined(RUBY_VM)
1092
+ static VALUE signal_handler_proc;
1089
1093
  static VALUE
1090
1094
  signal_handler_wrapper(VALUE arg, VALUE ctx)
1091
1095
  {
@@ -1098,6 +1102,7 @@ signal_handler_wrapper(VALUE arg, VALUE ctx)
1098
1102
 
1099
1103
  return Qnil;
1100
1104
  }
1105
+ #endif
1101
1106
 
1102
1107
  void
1103
1108
  Init_rbtrace()
@@ -199,7 +199,7 @@ EOS
199
199
  :short => nil
200
200
 
201
201
  opt :timeout,
202
- "seconds to wait before giving up on attach/detach",
202
+ "seconds to wait before giving up on attach/detach/eval",
203
203
  :default => 5
204
204
  end
205
205
 
@@ -248,7 +248,7 @@ EOS
248
248
  Array(opts[:config]).each do |config|
249
249
  file = [
250
250
  config,
251
- File.expand_path("../../tracers/#{config}.tracer", __FILE__)
251
+ File.expand_path("../../../tracers/#{config}.tracer", __FILE__)
252
252
  ].find{ |f| File.exists?(f) }
253
253
 
254
254
  unless file
@@ -389,6 +389,10 @@ EOS
389
389
  parser.die :pid, "(#{e.message})"
390
390
  end
391
391
 
392
+ if opts[:timeout] > 0
393
+ tracer.timeout = opts[:timeout]
394
+ end
395
+
392
396
  if opts[:fork_given]
393
397
  pid = tracer.fork
394
398
  STDERR.puts "*** forked off a busy looping copy at #{pid} (make sure to kill -9 it when you're done)"
@@ -145,7 +145,7 @@ class RBTracer
145
145
 
146
146
  send_cmd(:eval, code)
147
147
 
148
- if wait('for eval response', 15){ !!@eval_result }
148
+ if wait('for eval response', timeout){ !!@eval_result }
149
149
  res = @eval_result
150
150
  @eval_result = nil
151
151
  res
@@ -1,3 +1,3 @@
1
1
  class RBTracer
2
- VERSION = '0.4.7'
2
+ VERSION = '0.4.8'
3
3
  end
data/test.sh CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/bin/sh
2
2
  set -e
3
3
 
4
+ bundle check || bundle install
5
+
4
6
  cd ext
5
7
  [ -f Makefile ] && make clean
6
8
  ruby extconf.rb
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
5
- prerelease:
4
+ version: 0.4.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Aman Gupta
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-02-13 00:00:00.000000000 Z
11
+ date: 2016-01-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: ffi
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.0.6
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.0.6
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: trollop
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: 1.16.2
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: 1.16.2
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: msgpack
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: 0.4.3
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: 0.4.3
62
55
  description: rbtrace shows you method calls happening inside another ruby process
@@ -68,15 +61,16 @@ extensions:
68
61
  - ext/extconf.rb
69
62
  extra_rdoc_files: []
70
63
  files:
71
- - .gitignore
64
+ - ".gitignore"
72
65
  - Gemfile
73
66
  - Gemfile.lock
67
+ - LICENSE
74
68
  - README.md
75
69
  - bin/rbtrace
76
70
  - ext/.gitignore
77
71
  - ext/extconf.rb
78
72
  - ext/rbtrace.c
79
- - ext/src/msgpack-0.5.7.tar.gz
73
+ - ext/src/msgpack-1.1.0.tar.gz
80
74
  - lib/rbtrace/cli.rb
81
75
  - lib/rbtrace/core_ext.rb
82
76
  - lib/rbtrace/msgq.rb
@@ -95,27 +89,25 @@ files:
95
89
  homepage: http://github.com/tmm1/rbtrace
96
90
  licenses:
97
91
  - MIT
92
+ metadata: {}
98
93
  post_install_message:
99
94
  rdoc_options: []
100
95
  require_paths:
101
96
  - lib
102
97
  required_ruby_version: !ruby/object:Gem::Requirement
103
- none: false
104
98
  requirements:
105
- - - ! '>='
99
+ - - ">="
106
100
  - !ruby/object:Gem::Version
107
101
  version: '0'
108
102
  required_rubygems_version: !ruby/object:Gem::Requirement
109
- none: false
110
103
  requirements:
111
- - - ! '>='
104
+ - - ">="
112
105
  - !ruby/object:Gem::Version
113
106
  version: '0'
114
107
  requirements: []
115
108
  rubyforge_project:
116
- rubygems_version: 1.8.23
109
+ rubygems_version: 2.2.3
117
110
  signing_key:
118
- specification_version: 3
119
- summary: ! 'rbtrace: like strace but for ruby code'
111
+ specification_version: 4
112
+ summary: 'rbtrace: like strace but for ruby code'
120
113
  test_files: []
121
- has_rdoc: