ruby-debug-base19x 0.11.30.pre10 → 0.11.30.pre12

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/Rakefile CHANGED
@@ -25,3 +25,15 @@ task :test_base => :lib do
25
25
  t.verbose = true
26
26
  end
27
27
  end
28
+
29
+ desc "Remove built files"
30
+ task :clean do
31
+ cd "ext/ruby_debug" do
32
+ if File.exists?("Makefile")
33
+ sh "make clean"
34
+ rm "Makefile"
35
+ end
36
+ derived_files = Dir.glob(".o") + Dir.glob("*.so") + Dir.glob("*.bundle")
37
+ rm derived_files unless derived_files.empty?
38
+ end
39
+ end
@@ -1,8 +1,22 @@
1
+ # autodetect ruby headers
2
+ unless ARGV.any? {|arg| arg.include?('--with-ruby-include') }
3
+ require 'rbconfig'
4
+ bindir = RbConfig::CONFIG['bindir']
5
+ if bindir =~ %r{(^.*/\.rbenv/versions)/([^/]+)/bin$}
6
+ ruby_include = "#{$1}/#{$2}/include/ruby-1.9.1/ruby-#{$2}"
7
+ ARGV << "--with-ruby-include=#{ruby_include}"
8
+ elsif bindir =~ %r{(^.*/\.rvm/rubies)/([^/]+)/bin$}
9
+ ruby_include = "#{$1}/#{$2}/include/ruby-1.9.1/#{$2}"
10
+ ruby_include = "#{ENV['rvm_path']}/src/#{$2}" unless File.exist?(ruby_include)
11
+ ARGV << "--with-ruby-include=#{ruby_include}"
12
+ end
13
+ end
14
+
1
15
  require "mkmf"
2
- require "ruby_core_source"
16
+ require "debugger/ruby_core_source"
3
17
 
4
18
  hdrs = proc {
5
- begin
19
+ result = begin
6
20
  have_struct_member("rb_method_entry_t", "called_id", "method.h") or
7
21
  have_struct_member("rb_control_frame_t", "method_id", "method.h")
8
22
  end and
@@ -12,33 +26,24 @@ hdrs = proc {
12
26
  end and
13
27
  have_header("vm_core.h") and have_header("iseq.h") and have_header("insns.inc") and
14
28
  have_header("insns_info.inc") and have_header("eval_intern.h")
15
- if checking_for(checking_message("if rb_iseq_compile_with_option was added an argument filepath")) do
16
- try_compile(<<SRC)
17
- #include <ruby.h>
18
- #include "vm_core.h"
19
- extern VALUE rb_iseq_new_main(NODE *node, VALUE filename, VALUE filepath);
20
- SRC
21
- end
22
- $defs << '-DRB_ISEQ_COMPILE_5ARGS'
23
- end
29
+ have_func("rb_iseq_new_main", "vm_core.h")
30
+ have_func("rb_iseq_compile_on_base", "vm_core.h")
31
+ have_struct_member("rb_iseq_t", "location", "vm_core.h") or have_struct_member("rb_iseq_t", "filename", "vm_core.h")
32
+ have_struct_member("rb_iseq_t", "line_info_size", "vm_core.h") or have_struct_member("rb_iseq_t", "insn_info_size", "vm_core.h")
33
+ have_struct_member("rb_control_frame_t", "ep", "vm_core.h") or
34
+ have_struct_member("rb_control_frame_t", "dfp", "vm_core.h")
35
+ have_struct_member("rb_control_frame_t", "bp", "vm_core.h")
36
+ result
24
37
  }
25
38
 
39
+ $defs << "-O0"
40
+
26
41
  dir_config("ruby")
27
- name = "ruby_debug"
28
- if (ENV['rvm_ruby_string'])
29
- dest_dir = RbConfig::CONFIG["rubyhdrdir"]
30
- with_cppflags("-I" + dest_dir) {
31
- if hdrs.call
32
- create_makefile(name)
33
- exit 0
34
- end
35
- }
36
- end
37
- if !Ruby_core_source::create_makefile_with_core(hdrs, name)
42
+ if !Debugger::RubyCoreSource.create_makefile_with_core(hdrs, "ruby_debug")
38
43
  STDERR.print("Makefile creation failed\n")
39
44
  STDERR.print("*************************************************************\n\n")
40
- STDERR.print(" NOTE: For Ruby 1.9 installation instructions, please see:\n\n")
41
- STDERR.print(" http://wiki.github.com/mark-moseley/ruby-debug\n\n")
45
+ STDERR.print(" NOTE: If your headers were not found, try passing\n")
46
+ STDERR.print(" --with-ruby-include=PATH_TO_HEADERS \n\n")
42
47
  STDERR.print("*************************************************************\n\n")
43
48
  exit(1)
44
49
  end
@@ -9,7 +9,7 @@
9
9
  #include <insns_info.inc>
10
10
  #include "ruby_debug.h"
11
11
 
12
- #define DEBUG_VERSION "0.11.30.pre10"
12
+ #define DEBUG_VERSION "0.11.30.pre12"
13
13
 
14
14
  #define FRAME_N(n) (&debug_context->frames[debug_context->stack_size-(n)-1])
15
15
  #define GET_FRAME (FRAME_N(check_frame_number(debug_context, frame)))
@@ -22,7 +22,9 @@
22
22
 
23
23
  int rb_vm_get_sourceline(const rb_control_frame_t *cfp); /* from vm.c */
24
24
  /* from iseq.c */
25
- #ifdef RB_ISEQ_COMPILE_5ARGS
25
+ #ifdef HAVE_RB_ISEQ_COMPILE_ON_BASE
26
+ VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE absolute_path, VALUE line, rb_block_t *base_block, VALUE opt);
27
+ #elif HAVE_RB_ISEQ_NEW_MAIN
26
28
  VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt);
27
29
  #else
28
30
  VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE line, VALUE opt);
@@ -502,7 +504,11 @@ save_call_frame(rb_event_flag_t _event, debug_context_t *debug_context, VALUE se
502
504
  debug_frame->arg_ary = Qnil;
503
505
  debug_frame->argc = GET_THREAD()->cfp->iseq->argc;
504
506
  debug_frame->info.runtime.cfp = GET_THREAD()->cfp;
507
+ #if VM_DEBUG_BP_CHECK
508
+ debug_frame->info.runtime.bp_check = GET_THREAD()->cfp->bp_check;
509
+ #else
505
510
  debug_frame->info.runtime.bp = GET_THREAD()->cfp->bp;
511
+ #endif
506
512
  debug_frame->info.runtime.block_iseq = GET_THREAD()->cfp->block_iseq;
507
513
  debug_frame->info.runtime.block_pc = NULL;
508
514
  debug_frame->info.runtime.last_pc = GET_THREAD()->cfp->pc;
@@ -521,9 +527,9 @@ filename_cmp_impl(VALUE source, char *file);
521
527
 
522
528
  int
523
529
  filename_cmp(VALUE source, char *file) {
524
- #ifdef __WIN32__
530
+ #ifdef _WIN32
525
531
  return filename_cmp_impl(source, file);
526
- #endif
532
+ #else
527
533
 
528
534
  if (!RTEST(resolve_symlinks)) {
529
535
  return filename_cmp_impl(source, file);
@@ -547,6 +553,7 @@ filename_cmp(VALUE source, char *file) {
547
553
  return result;
548
554
  }
549
555
  #endif
556
+ #endif
550
557
  }
551
558
 
552
559
  int
@@ -704,7 +711,10 @@ create_catch_table(debug_context_t *debug_context, unsigned long cont)
704
711
  GET_THREAD()->parse_in_eval++;
705
712
  GET_THREAD()->mild_compile_error++;
706
713
  /* compiling with option Qfalse (no options) prevents debug hook calls during this catch routine */
707
- #ifdef RB_ISEQ_COMPILE_5ARGS
714
+ #ifdef HAVE_RB_ISEQ_COMPILE_ON_BASE
715
+ catch_table->iseq = rb_iseq_compile_with_option(
716
+ rb_str_new_cstr("begin\nend"), rb_str_new_cstr("(exception catcher)"), Qnil, INT2FIX(1), NULL, Qfalse);
717
+ #elif HAVE_RB_ISEQ_NEW_MAIN
708
718
  catch_table->iseq = rb_iseq_compile_with_option(
709
719
  rb_str_new_cstr("begin\nend"), rb_str_new_cstr("(exception catcher)"), Qnil, INT2FIX(1), Qfalse);
710
720
  #else
@@ -723,6 +733,7 @@ create_catch_table(debug_context_t *debug_context, unsigned long cont)
723
733
  return(catch_table);
724
734
  }
725
735
 
736
+ #ifdef RUBY_EVENT_VM
726
737
  static int
727
738
  set_thread_event_flag_i(st_data_t key, st_data_t val, st_data_t flag)
728
739
  {
@@ -733,6 +744,7 @@ set_thread_event_flag_i(st_data_t key, st_data_t val, st_data_t flag)
733
744
 
734
745
  return(ST_CONTINUE);
735
746
  }
747
+ #endif
736
748
 
737
749
  static void
738
750
  debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE klass)
@@ -757,8 +769,9 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
757
769
  mid = iseq->defined_method_id;
758
770
  klass = iseq->klass;
759
771
  }
760
-
772
+ #ifdef ID_ALLOCATOR
761
773
  if (mid == ID_ALLOCATOR) return;
774
+ #endif
762
775
 
763
776
  /* return if thread is marked as 'ignored'.
764
777
  debugger's threads are marked this way
@@ -805,13 +818,19 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
805
818
  debug_context->old_iseq_catch = NULL;
806
819
  }
807
820
 
821
+ #ifdef RUBY_EVENT_VM
808
822
  /* make sure all threads have event flag set so we'll get its events */
809
823
  st_foreach(thread->vm->living_threads, set_thread_event_flag_i, 0);
824
+ #endif
810
825
 
811
826
  /* remove any frames that are now out of scope */
812
827
  while(debug_context->stack_size > 0)
813
828
  {
829
+ #if VM_DEBUG_BP_CHECK
830
+ if (debug_context->frames[debug_context->stack_size - 1].info.runtime.bp_check <= thread->cfp->bp_check)
831
+ #else
814
832
  if (debug_context->frames[debug_context->stack_size - 1].info.runtime.bp <= thread->cfp->bp)
833
+ #endif
815
834
  break;
816
835
  debug_context->stack_size--;
817
836
  }
@@ -859,37 +878,6 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
859
878
  {
860
879
  case RUBY_EVENT_LINE:
861
880
  {
862
- if (CTX_FL_TEST(debug_context, CTX_FL_CATCHING))
863
- {
864
- debug_frame_t *top_frame = get_top_frame(debug_context);
865
-
866
- if (top_frame != NULL)
867
- {
868
- rb_control_frame_t *cfp = top_frame->info.runtime.cfp;
869
- VALUE hit_count;
870
- int c_hit_count;
871
- rb_iseq_t *iseq = cfp->iseq;
872
-
873
- if (iseq != NULL) {
874
- /* restore the proper catch table */
875
- iseq->catch_table_size = debug_context->catch_table.old_catch_table_size;
876
- iseq->catch_table = debug_context->catch_table.old_catch_table;
877
- }
878
-
879
- /* send catchpoint notification */
880
- c_hit_count = FIX2INT(rb_hash_aref(rdebug_catchpoints, debug_context->catch_table.mod_name)) + 1;
881
- hit_count = INT2FIX(c_hit_count);
882
- rb_hash_aset(rdebug_catchpoints, debug_context->catch_table.mod_name, hit_count);
883
- debug_context->stop_reason = CTX_STOP_CATCHPOINT;
884
- rb_funcall(context, idAtCatchpoint, 1, debug_context->catch_table.errinfo);
885
- if(self && binding == Qnil)
886
- binding = create_binding(self);
887
- save_top_binding(debug_context, binding);
888
- call_at_line(context, debug_context, rb_str_new2(top_frame->file), INT2FIX(top_frame->line));
889
- }
890
-
891
- break;
892
- }
893
881
  if(debug_context->stack_size == 0 ||
894
882
  get_top_frame(debug_context)->info.runtime.block_iseq != thread->cfp->block_iseq ||
895
883
  get_top_frame(debug_context)->info.runtime.cfp->iseq != thread->cfp->iseq)
@@ -987,7 +975,11 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
987
975
  while(debug_context->stack_size > 0)
988
976
  {
989
977
  debug_context->stack_size--;
978
+ #if VM_DEBUG_BP_CHECK
979
+ if (debug_context->frames[debug_context->stack_size].info.runtime.bp_check <= GET_THREAD()->cfp->bp_check)
980
+ #else
990
981
  if (debug_context->frames[debug_context->stack_size].info.runtime.bp <= GET_THREAD()->cfp->bp)
982
+ #endif
991
983
  break;
992
984
  }
993
985
  CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT);
@@ -1006,13 +998,6 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
1006
998
  VALUE expn_class, aclass;
1007
999
  int i;
1008
1000
 
1009
- if (CTX_FL_TEST(debug_context, CTX_FL_CATCHING)) {
1010
- /* we're re-raising exception after processing line event,
1011
- now allow the next exception to be caught, don't setup catchers */
1012
- CTX_FL_UNSET(debug_context, CTX_FL_CATCHING);
1013
- break;
1014
- }
1015
-
1016
1001
  if(debug == Qtrue) {
1017
1002
  fprintf(stderr, "stack_size %d\n", debug_context->stack_size);
1018
1003
  for (i = 0; i < debug_context->stack_size; i++) {
@@ -1071,25 +1056,20 @@ debug_event_hook(rb_event_flag_t event, VALUE data, VALUE self, ID mid, VALUE kl
1071
1056
  if (hit_count != Qnil)
1072
1057
  {
1073
1058
  debug_frame_t *top_frame = get_top_frame(debug_context);
1074
- rb_control_frame_t *cfp = top_frame->info.runtime.cfp;
1075
- rb_iseq_t *iseq = cfp->iseq;
1059
+ VALUE hit_count;
1060
+ int c_hit_count;
1076
1061
 
1077
- debug_context->catch_table.mod_name = mod_name;
1078
- debug_context->catch_table.errinfo = rb_errinfo();
1079
- CTX_FL_SET(debug_context, CTX_FL_CATCHING);
1080
- if (iseq != NULL) {
1081
-
1082
- /* save the current catch table */
1083
- debug_context->catch_table.old_catch_table_size = iseq->catch_table_size;
1084
- debug_context->catch_table.old_catch_table = iseq->catch_table;
1085
-
1086
-
1087
- /* create a new catch table to catch this exception, and put it in the current iseq */
1088
- iseq->catch_table_size = 1;
1089
- iseq->catch_table =
1090
- create_catch_table(debug_context, top_frame->info.runtime.last_pc - cfp->iseq->iseq_encoded - insn_len(BIN(trace)));
1091
- break;
1092
- }
1062
+ /* send catchpoint notification */
1063
+ hit_count = rb_hash_aref(rdebug_catchpoints, mod_name);
1064
+ c_hit_count = (hit_count != Qnil ? FIX2INT(hit_count) : 0) + 1;
1065
+ hit_count = INT2FIX(c_hit_count);
1066
+ rb_hash_aset(rdebug_catchpoints, mod_name, hit_count);
1067
+ debug_context->stop_reason = CTX_STOP_CATCHPOINT;
1068
+ rb_funcall(context, idAtCatchpoint, 1, rb_errinfo());
1069
+ if(self && binding == Qnil)
1070
+ binding = create_binding(self);
1071
+ save_top_binding(debug_context, binding);
1072
+ call_at_line(context, debug_context, rb_str_new2(top_frame->file), INT2FIX(top_frame->line));
1093
1073
  }
1094
1074
  }
1095
1075
 
@@ -1931,8 +1911,11 @@ copy_scalar_args(debug_frame_t *debug_frame)
1931
1911
  for (i = 0; i < iseq->argc; i++)
1932
1912
  {
1933
1913
  if (!rb_is_local_id(iseq->local_table[i])) continue; /* skip flip states */
1934
-
1914
+ #ifdef HAVE_RB_CONTROL_FRAME_T_EP
1915
+ val = *(cfp->ep - iseq->local_size + i);
1916
+ #else
1935
1917
  val = *(cfp->dfp - iseq->local_size + i);
1918
+ #endif
1936
1919
 
1937
1920
  if (arg_value_is_small(val))
1938
1921
  rb_ary_push(debug_frame->arg_ary, val);
@@ -1993,7 +1976,11 @@ context_copy_locals(debug_context_t *debug_context, debug_frame_t *debug_frame,
1993
1976
  {
1994
1977
  VALUE str = rb_id2str(iseq->local_table[i]);
1995
1978
  if (str != 0)
1979
+ #ifdef HAVE_RB_CONTROL_FRAME_T_EP
1980
+ rb_hash_aset(hash, str, *(cfp->ep - iseq->local_size + i));
1981
+ #else
1996
1982
  rb_hash_aset(hash, str, *(cfp->dfp - iseq->local_size + i));
1983
+ #endif
1997
1984
  }
1998
1985
  }
1999
1986
 
@@ -2011,7 +1998,11 @@ context_copy_locals(debug_context_t *debug_context, debug_frame_t *debug_frame,
2011
1998
  {
2012
1999
  VALUE str = rb_id2str(iseq->local_table[i]);
2013
2000
  if (str != 0)
2001
+ #ifdef HAVE_RB_CONTROL_FRAME_T_EP
2002
+ rb_hash_aset(hash, str, *(block_frame->ep - iseq->local_table_size + i - 1));
2003
+ #else
2014
2004
  rb_hash_aset(hash, str, *(block_frame->dfp - iseq->local_table_size + i - 1));
2005
+ #endif
2015
2006
  }
2016
2007
  return(hash);
2017
2008
  }
@@ -2478,11 +2469,24 @@ context_jump(VALUE self, VALUE line, VALUE file)
2478
2469
  /* find target frame to jump to */
2479
2470
  while (RUBY_VM_VALID_CONTROL_FRAME_P(cfp, cfp_end))
2480
2471
  {
2472
+ #ifdef HAVE_RB_ISEQ_T_LOCATION
2473
+ if ((cfp->iseq != NULL) && (rb_str_cmp(file, cfp->iseq->location.path) == 0))
2474
+ #else
2481
2475
  if ((cfp->iseq != NULL) && (rb_str_cmp(file, cfp->iseq->filename) == 0))
2476
+ #endif
2482
2477
  {
2478
+ #ifdef HAVE_RB_ISEQ_T_LINE_INFO_SIZE
2479
+ for (i = 0; i < cfp->iseq->line_info_size; i++)
2480
+ #else
2483
2481
  for (i = 0; i < cfp->iseq->insn_info_size; i++)
2482
+ #endif
2484
2483
  {
2484
+ #ifdef HAVE_RB_ISEQ_T_LINE_INFO_SIZE
2485
+ if (cfp->iseq->line_info_table[i].line_no != line)
2486
+ #else
2485
2487
  if (cfp->iseq->insn_info_table[i].line_no != line)
2488
+ #endif
2489
+
2486
2490
  continue;
2487
2491
 
2488
2492
  /* hijack the currently running code so that we can change the frame PC */
@@ -2492,8 +2496,13 @@ context_jump(VALUE self, VALUE line, VALUE file)
2492
2496
  cfp_start->pc[1] = (VALUE)do_jump;
2493
2497
 
2494
2498
  debug_context->jump_cfp = cfp;
2499
+ #ifdef HAVE_RB_ISEQ_T_LINE_INFO_SIZE
2500
+ debug_context->jump_pc =
2501
+ cfp->iseq->iseq_encoded + cfp->iseq->line_info_table[i].position;
2502
+ #else
2495
2503
  debug_context->jump_pc =
2496
2504
  cfp->iseq->iseq_encoded + cfp->iseq->insn_info_table[i].position;
2505
+ #endif
2497
2506
 
2498
2507
  return(INT2FIX(0)); /* success */
2499
2508
  }
@@ -45,7 +45,11 @@ typedef struct {
45
45
  union {
46
46
  struct {
47
47
  rb_control_frame_t *cfp;
48
- VALUE *bp;
48
+ #if VM_DEBUG_BP_CHECK
49
+ VALUE *bp_check;
50
+ #else
51
+ VALUE *bp;
52
+ #endif
49
53
  struct rb_iseq_struct *block_iseq;
50
54
  VALUE *block_pc;
51
55
  VALUE *last_pc;
@@ -1,6 +1,5 @@
1
1
  require 'ruby_debug'
2
2
  require 'rubygems'
3
- require 'linecache19'
4
3
 
5
4
  module Debugger
6
5
 
@@ -90,19 +89,6 @@ module Debugger
90
89
  end
91
90
  context
92
91
  end
93
-
94
- def source_reload
95
- LineCache::clear_file_cache
96
- end
97
-
98
- # Get line +line_number+ from file named +filename+. Return "\n"
99
- # there was a problem. Leaking blanks are stripped off.
100
- def line_at(filename, line_number) # :nodoc:
101
- @reload_on_change=nil unless defined?(@reload_on_change)
102
- line = LineCache::getline(filename, line_number, @reload_on_change)
103
- return "\n" unless line
104
- return "#{line.gsub(/^\s+/, '').chomp}\n"
105
- end
106
92
 
107
93
  #
108
94
  # Activates the post-mortem mode. There are two ways of using it:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-debug-base19x
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.30.pre10
4
+ version: 0.11.30.pre12
5
5
  prerelease: 8
6
6
  platform: ruby
7
7
  authors:
@@ -9,52 +9,40 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-07 00:00:00.000000000 Z
12
+ date: 2013-03-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: columnize
16
- requirement: &70196555532780 !ruby/object:Gem::Requirement
15
+ name: debugger-ruby_core_source
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.3.1
21
+ version: 1.1.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70196555532780
25
- - !ruby/object:Gem::Dependency
26
- name: ruby_core_source
27
- requirement: &70196555530700 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
28
25
  none: false
29
26
  requirements:
30
27
  - - ! '>='
31
28
  - !ruby/object:Gem::Version
32
- version: 0.1.4
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70196555530700
29
+ version: 1.1.4
36
30
  - !ruby/object:Gem::Dependency
37
- name: linecache19
38
- requirement: &70196555529100 !ruby/object:Gem::Requirement
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
34
  requirements:
41
35
  - - ! '>='
42
36
  - !ruby/object:Gem::Version
43
- version: 0.5.11
37
+ version: 0.8.1
44
38
  type: :runtime
45
39
  prerelease: false
46
- version_requirements: *70196555529100
47
- - !ruby/object:Gem::Dependency
48
- name: rake
49
- requirement: &70196555527340 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
50
41
  none: false
51
42
  requirements:
52
43
  - - ! '>='
53
44
  - !ruby/object:Gem::Version
54
45
  version: 0.8.1
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: *70196555527340
58
46
  description: ! 'ruby-debug is a fast implementation of the standard Ruby debugger
59
47
  debug.rb.
60
48
 
@@ -104,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
92
  version: 1.3.1
105
93
  requirements: []
106
94
  rubyforge_project: ruby-debug19
107
- rubygems_version: 1.8.10
95
+ rubygems_version: 1.8.25
108
96
  signing_key:
109
97
  specification_version: 3
110
98
  summary: Fast Ruby debugger - core component