debase 0.2.1 → 0.2.2.beta1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ae7ee5a28642982913f3226bc0c2100be9cc11c
4
- data.tar.gz: c596d74c80ca1a043754f5dc4522a56de67ad39c
3
+ metadata.gz: 0a204eeb87e5c5825daab8bd4c2227232bdd3ecf
4
+ data.tar.gz: b1388e1f9c6e8742f77f4f2f1846fda3ead02e2a
5
5
  SHA512:
6
- metadata.gz: 6b683ad8fd2b2f91882e6a9912eb72e78755bb216c9d6bd9917f6e4b1c128742c966c1f239385ad44c486562be07d855900f4247ef5894b783923be7cda6d241
7
- data.tar.gz: 1676ca16289abf833fd3855b7a20fdd9830d9b30580f58b0f359dccc8839f5da02fe7b825b96f29fe872f3f3384f92e32432b6a396c210830f4228d3da3926ae
6
+ metadata.gz: 1bbfedb73da5c7bc16e49731ccabade30e09a2713e09708ba7aab85d982c06e3661f08c68712b76c779068253047ded44c31b518900bea9653ede6111dc18169
7
+ data.tar.gz: 08f470b94fc465b657eefc74af3a7a0cc4b647fe017cf85d5b52f8f451dda5effa9ede5e92284d3c8a6e0dddc4c03342f4157f3eb6e9f9ebfef02a47fd1cafe9
@@ -333,12 +333,12 @@ Context_stop_frame(VALUE self, VALUE frame)
333
333
  debug_context_t *debug_context;
334
334
 
335
335
  Data_Get_Struct(self, debug_context_t, debug_context);
336
- if(FIX2INT(frame) < 0 && FIX2INT(frame) >= debug_context->stack_size)
336
+ if(FIX2INT(frame) < 0 && FIX2INT(frame) >= debug_context->calced_stack_size)
337
337
  rb_raise(rb_eRuntimeError, "Stop frame is out of range.");
338
338
  /* we decrease stack size by frame and 1 because we use stop_frame after
339
339
  updating stack size. If that code will be changed this should be changed accordingly.
340
340
  */
341
- debug_context->stop_frame = debug_context->stack_size - FIX2INT(frame) - 1;
341
+ debug_context->stop_frame = debug_context->calced_stack_size - FIX2INT(frame) - 1;
342
342
 
343
343
  return frame;
344
344
  }
@@ -298,7 +298,7 @@ process_return_event(VALUE trace_point, void *data)
298
298
  /* it is important to check stop_frame after stack size updated
299
299
  if the order will be changed change Context_stop_frame accordingly.
300
300
  */
301
- if(context->stack_size == context->stop_frame)
301
+ if(context->calced_stack_size == context->stop_frame)
302
302
  {
303
303
  context->stop_next = 1;
304
304
  context->stop_frame = -1;
@@ -385,7 +385,6 @@ Debase_setup_tracepoints(VALUE self)
385
385
  process_call_event, NULL);
386
386
  rb_tracepoint_enable(tpCall);
387
387
  tpRaise = rb_tracepoint_new(Qnil, RUBY_EVENT_RAISE, process_raise_event, NULL);
388
- rb_tracepoint_enable(tpRaise);
389
388
  Debase_current_context(self);
390
389
 
391
390
  return Qnil;
@@ -511,6 +510,18 @@ Debase_set_verbose(VALUE self, VALUE value)
511
510
  return value;
512
511
  }
513
512
 
513
+ /*
514
+ * call-seq:
515
+ * Debase.tp_raise -> TracePoint
516
+ *
517
+ * Returns trace point we use to track :raise events
518
+ */
519
+ static VALUE
520
+ Debase_get_tp_raise(VALUE self)
521
+ {
522
+ return tpRaise;
523
+ }
524
+
514
525
  /*
515
526
  * Document-class: Debase
516
527
  *
@@ -530,6 +541,7 @@ Init_debase_internals()
530
541
  rb_define_module_function(mDebase, "contexts", Debase_contexts, 0);
531
542
  rb_define_module_function(mDebase, "breakpoints", Debase_breakpoints, 0);
532
543
  rb_define_module_function(mDebase, "catchpoints", Debase_catchpoints, 0);
544
+ rb_define_module_function(mDebase, "tp_raise", Debase_get_tp_raise, 0);
533
545
  rb_define_module_function(mDebase, "started?", Debase_started, 0);
534
546
  rb_define_module_function(mDebase, "verbose?", Debase_verbose, 0);
535
547
  rb_define_module_function(mDebase, "verbose=", Debase_set_verbose, 1);
@@ -48,6 +48,17 @@ module Debase
48
48
 
49
49
  def add_catchpoint(exception)
50
50
  catchpoints[exception] = 0
51
+ tp_raise.enable
52
+ end
53
+
54
+ def remove_catchpoint(exception)
55
+ catchpoints.delete(exception)
56
+ tp_raise.disable if catchpoints.empty?
57
+ end
58
+
59
+ def clear_catchpoints
60
+ catchpoints.clear
61
+ tp_raise.disable
51
62
  end
52
63
 
53
64
  #call-seq:
@@ -1,3 +1,3 @@
1
1
  module Debase
2
- VERSION = "0.2.1" unless defined? VERSION
2
+ VERSION = "0.2.2.beta1" unless defined? VERSION
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Ushakov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-19 00:00:00.000000000 Z
11
+ date: 2015-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: debase-ruby_core_source
@@ -125,12 +125,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
125
  version: '0'
126
126
  required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - ">="
128
+ - - ">"
129
129
  - !ruby/object:Gem::Version
130
- version: '0'
130
+ version: 1.3.1
131
131
  requirements: []
132
132
  rubyforge_project: debase
133
- rubygems_version: 2.2.2
133
+ rubygems_version: 2.4.5.1
134
134
  signing_key:
135
135
  specification_version: 4
136
136
  summary: debase is a fast implementation of the standard Ruby debugger debug.rb for