debase 0.2.1 → 0.2.2.beta1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|