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 +4 -4
- data/ext/context.c +2 -2
- data/ext/debase_internals.c +14 -2
- data/lib/debase.rb +11 -0
- data/lib/debase/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a204eeb87e5c5825daab8bd4c2227232bdd3ecf
|
4
|
+
data.tar.gz: b1388e1f9c6e8742f77f4f2f1846fda3ead02e2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bbfedb73da5c7bc16e49731ccabade30e09a2713e09708ba7aab85d982c06e3661f08c68712b76c779068253047ded44c31b518900bea9653ede6111dc18169
|
7
|
+
data.tar.gz: 08f470b94fc465b657eefc74af3a7a0cc4b647fe017cf85d5b52f8f451dda5effa9ede5e92284d3c8a6e0dddc4c03342f4157f3eb6e9f9ebfef02a47fd1cafe9
|
data/ext/context.c
CHANGED
@@ -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->
|
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->
|
341
|
+
debug_context->stop_frame = debug_context->calced_stack_size - FIX2INT(frame) - 1;
|
342
342
|
|
343
343
|
return frame;
|
344
344
|
}
|
data/ext/debase_internals.c
CHANGED
@@ -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->
|
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);
|
data/lib/debase.rb
CHANGED
@@ -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:
|
data/lib/debase/version.rb
CHANGED
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.
|
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-
|
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:
|
130
|
+
version: 1.3.1
|
131
131
|
requirements: []
|
132
132
|
rubyforge_project: debase
|
133
|
-
rubygems_version: 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
|