ruby-debug-base19 0.11.15 → 0.11.16
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.
- data/AUTHORS +1 -0
- data/ext/ruby_debug/breakpoint.c +0 -1
- data/ext/ruby_debug/ruby_debug.c +56 -2
- data/ext/ruby_debug/ruby_debug.h +1 -0
- metadata +5 -12
data/AUTHORS
CHANGED
data/ext/ruby_debug/breakpoint.c
CHANGED
data/ext/ruby_debug/ruby_debug.c
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
#define min(x,y) ((x) < (y) ? (x) : (y))
|
17
17
|
#endif
|
18
18
|
|
19
|
-
#if RUBY_VERSION_MAJOR == 1 && RUBY_VERSION_MINOR == 9 && RUBY_VERSION_TEENY == 1 && RUBY_PATCHLEVEL
|
19
|
+
#if RUBY_VERSION_MAJOR == 1 && RUBY_VERSION_MINOR == 9 && RUBY_VERSION_TEENY == 1 && RUBY_PATCHLEVEL >= 0
|
20
20
|
#define RUBY_VERSION_1_9_1
|
21
21
|
#endif
|
22
22
|
|
@@ -531,6 +531,10 @@ filename_cmp(VALUE source, char *file)
|
|
531
531
|
return 1;
|
532
532
|
if(isdirsep(source_ptr[s]) && isdirsep(file_ptr[f]))
|
533
533
|
dirsep_flag = 1;
|
534
|
+
#ifdef DOSISH_DRIVE_LETTER
|
535
|
+
else if (s == 0)
|
536
|
+
return(toupper(source_ptr[s]) == toupper(file_ptr[f]));
|
537
|
+
#endif
|
534
538
|
else if(source_ptr[s] != file_ptr[f])
|
535
539
|
return 0;
|
536
540
|
}
|
@@ -784,7 +788,12 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
|
|
784
788
|
else
|
785
789
|
set_frame_source(event, debug_context, self, file, line, mid);
|
786
790
|
|
787
|
-
if (CTX_FL_TEST(debug_context,
|
791
|
+
if (CTX_FL_TEST(debug_context, CTX_FL_JUMPING))
|
792
|
+
{
|
793
|
+
CTX_FL_UNSET(debug_context, CTX_FL_JUMPING);
|
794
|
+
break;
|
795
|
+
}
|
796
|
+
else if (CTX_FL_TEST(debug_context, CTX_FL_CATCHING))
|
788
797
|
{
|
789
798
|
debug_frame_t *top_frame = get_top_frame(debug_context);
|
790
799
|
|
@@ -2217,6 +2226,50 @@ context_stop_reason(VALUE self)
|
|
2217
2226
|
return ID2SYM(rb_intern(sym_name));
|
2218
2227
|
}
|
2219
2228
|
|
2229
|
+
/*
|
2230
|
+
* call-seq:
|
2231
|
+
* context.jump(line, file) -> bool
|
2232
|
+
*
|
2233
|
+
* Returns +true+ if jump to +line+ in filename +file+ was successful.
|
2234
|
+
*/
|
2235
|
+
static VALUE
|
2236
|
+
context_jump(int argc, VALUE *argv, VALUE self)
|
2237
|
+
{
|
2238
|
+
debug_context_t *debug_context;
|
2239
|
+
debug_frame_t *debug_frame;
|
2240
|
+
VALUE line, file;
|
2241
|
+
const char *file_str;
|
2242
|
+
int i;
|
2243
|
+
struct rb_iseq_struct *iseq;
|
2244
|
+
|
2245
|
+
Data_Get_Struct(self, debug_context_t, debug_context);
|
2246
|
+
debug_frame = get_top_frame(debug_context);
|
2247
|
+
|
2248
|
+
if ((argc <= 0) || (argc > 2))
|
2249
|
+
rb_raise(rb_eArgError, "wrong number of arguments (%d for 1 or 2)", argc);
|
2250
|
+
rb_scan_args(argc, argv, "11", &line, &file);
|
2251
|
+
|
2252
|
+
line = FIX2INT(line);
|
2253
|
+
if (file == Qnil)
|
2254
|
+
file_str = debug_frame->file;
|
2255
|
+
else
|
2256
|
+
file_str = RSTRING_PTR(file);
|
2257
|
+
|
2258
|
+
iseq = debug_frame->info.runtime.cfp->iseq;
|
2259
|
+
for (i = 0; i < iseq->insn_info_size; i++)
|
2260
|
+
{
|
2261
|
+
if (iseq->insn_info_table[i].line_no == line)
|
2262
|
+
{
|
2263
|
+
if (*debug_frame->info.runtime.cfp->pc == BIN(pop))
|
2264
|
+
debug_frame->info.runtime.cfp->sp--;
|
2265
|
+
debug_frame->info.runtime.cfp->pc =
|
2266
|
+
iseq->iseq_encoded + iseq->insn_info_table[i].position;
|
2267
|
+
CTX_FL_SET(debug_context, CTX_FL_JUMPING);
|
2268
|
+
return Qtrue;
|
2269
|
+
}
|
2270
|
+
}
|
2271
|
+
return Qfalse;
|
2272
|
+
}
|
2220
2273
|
|
2221
2274
|
/*
|
2222
2275
|
* Document-class: Context
|
@@ -2258,6 +2311,7 @@ Init_context()
|
|
2258
2311
|
context_breakpoint, 0); /* in breakpoint.c */
|
2259
2312
|
rb_define_method(cContext, "set_breakpoint",
|
2260
2313
|
context_set_breakpoint, -1); /* in breakpoint.c */
|
2314
|
+
rb_define_method(cContext, "jump", context_jump, -1);
|
2261
2315
|
}
|
2262
2316
|
|
2263
2317
|
/*
|
data/ext/ruby_debug/ruby_debug.h
CHANGED
@@ -13,6 +13,7 @@ enum ctx_stop_reason {CTX_STOP_NONE, CTX_STOP_STEP, CTX_STOP_BREAKPOINT,
|
|
13
13
|
#define CTX_FL_STEPPED (1<<8)
|
14
14
|
#define CTX_FL_FORCE_MOVE (1<<9)
|
15
15
|
#define CTX_FL_CATCHING (1<<10)
|
16
|
+
#define CTX_FL_JUMPING (1<<11)
|
16
17
|
|
17
18
|
#define CTX_FL_TEST(c,f) ((c)->flags & (f))
|
18
19
|
#define CTX_FL_SET(c,f) do { (c)->flags |= (f); } while (0)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-debug-base19
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kent Sibilev
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-08-
|
13
|
+
date: 2009-08-28 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -43,12 +43,7 @@ dependencies:
|
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: 0.5.11
|
45
45
|
version:
|
46
|
-
description:
|
47
|
-
ruby-debug is a fast implementation of the standard Ruby debugger debug.rb.
|
48
|
-
It is implemented by utilizing a new Ruby C API hook. The core component
|
49
|
-
provides support that front-ends can build on. It provides breakpoint
|
50
|
-
handling, bindings for stack frames among other things.
|
51
|
-
|
46
|
+
description: ruby-debug is a fast implementation of the standard Ruby debugger debug.rb. It is implemented by utilizing a new Ruby C API hook. The core component provides support that front-ends can build on. It provides breakpoint handling, bindings for stack frames among other things.
|
52
47
|
email: mark@fast-software.com
|
53
48
|
executables: []
|
54
49
|
|
@@ -72,10 +67,8 @@ files:
|
|
72
67
|
- test/base/base.rb
|
73
68
|
- test/base/binding.rb
|
74
69
|
- test/base/catchpoint.rb
|
75
|
-
has_rdoc:
|
70
|
+
has_rdoc: false
|
76
71
|
homepage: http://rubyforge.org/projects/ruby-debug19/
|
77
|
-
licenses: []
|
78
|
-
|
79
72
|
post_install_message:
|
80
73
|
rdoc_options:
|
81
74
|
- --charset=UTF-8
|
@@ -96,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
89
|
requirements: []
|
97
90
|
|
98
91
|
rubyforge_project: ruby-debug19
|
99
|
-
rubygems_version: 1.3.
|
92
|
+
rubygems_version: 1.3.1
|
100
93
|
signing_key:
|
101
94
|
specification_version: 3
|
102
95
|
summary: Fast Ruby debugger - core component
|