ruby-debug-base 0.10.1 → 0.10.2

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/CHANGES CHANGED
@@ -1,3 +1,10 @@
1
+ 0.10.2
2
+ - debugger(steps=0) breaks inside of debugger rather than wait for a line event.
3
+ - trace var varname (stop|nostop) added which issues trace_var.
4
+ - start method is now properly defined in Debugger module
5
+ - fixed 'finish' command
6
+ - rdebug script now works with Ruby 1.8.7
7
+
1
8
  0.10.1
2
9
  4/10/08 - in honor of the 30th Birthday of Kate Schwarz
3
10
 
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ COMMON_FILES = FileList[
20
20
  'Rakefile',
21
21
  ]
22
22
 
23
- CLI_TEST_FILE_LIST = 'test/test-*.rb'
23
+ CLI_TEST_FILE_LIST = FileList['test/test-*.rb', 'test/cli/**/*_test.rb']
24
24
  CLI_FILES = COMMON_FILES + FileList[
25
25
  "cli/**/*",
26
26
  'ChangeLog',
@@ -30,7 +30,7 @@ CLI_FILES = COMMON_FILES + FileList[
30
30
  'test/**/data/*.right',
31
31
  'test/**/*.rb',
32
32
  'rdbg.rb',
33
- CLI_TEST_FILE_LIST,
33
+ CLI_TEST_FILE_LIST
34
34
  ]
35
35
 
36
36
  BASE_TEST_FILE_LIST = %w(
@@ -48,16 +48,16 @@ BASE_FILES = COMMON_FILES + FileList[
48
48
  ]
49
49
 
50
50
  desc "Test everything."
51
- test_task = task :test => [:lib, :test_base] do
51
+ task :test => :test_base do
52
52
  Rake::TestTask.new(:test) do |t|
53
53
  t.libs << ['./ext', './lib', './cli']
54
- t.pattern = CLI_TEST_FILE_LIST
54
+ t.test_files = CLI_TEST_FILE_LIST
55
55
  t.verbose = true
56
56
  end
57
57
  end
58
58
 
59
59
  desc "Test ruby-debug-base."
60
- test_task = task :test_base => :lib do
60
+ task :test_base => :lib do
61
61
  Rake::TestTask.new(:test_base) do |t|
62
62
  t.libs << ['./ext', './lib']
63
63
  t.test_files = FileList[BASE_TEST_FILE_LIST]
@@ -198,7 +198,7 @@ task :publish do
198
198
  # Get ruby-debug path.
199
199
  ruby_debug_path = File.expand_path(File.dirname(__FILE__))
200
200
 
201
- publisher = Rake::SshDirPublisher.new("kent@rubyforge.org",
201
+ Rake::SshDirPublisher.new("kent@rubyforge.org",
202
202
  "/var/www/gforge-projects/ruby-debug", ruby_debug_path)
203
203
  end
204
204
 
@@ -1,7 +1,7 @@
1
1
  #include "ruby_debug.h"
2
2
 
3
3
  VALUE rdebug_breakpoints = Qnil;
4
- VALUE rdebug_catchpoints = Qnil;
4
+ VALUE rdebug_catchpoints;
5
5
 
6
6
  static VALUE cBreakpoint;
7
7
  static ID idEval;
@@ -219,7 +219,7 @@ rdebug_remove_breakpoint(VALUE self, VALUE id_value)
219
219
 
220
220
  /*
221
221
  * call-seq:
222
- * Debugger.catchpoints -> string
222
+ * Debugger.catchpoints -> hash
223
223
  *
224
224
  * Returns a current catchpoints, which is a hash exception names that will
225
225
  * trigger a debugger when raised. The values are the number of times taht
@@ -235,23 +235,19 @@ debug_catchpoints(VALUE self)
235
235
 
236
236
  /*
237
237
  * call-seq:
238
- * Debugger.checkpoint = string -> string
238
+ * Debugger.catchpoint(string) -> string
239
239
  *
240
- * Sets catchpoint.
240
+ * Sets catchpoint. Returns the string passed.
241
241
  */
242
242
  VALUE
243
243
  rdebug_add_catchpoint(VALUE self, VALUE value)
244
244
  {
245
245
  debug_check_started();
246
246
 
247
- if (!NIL_P(value) && TYPE(value) != T_STRING) {
248
- rb_raise(rb_eTypeError, "value of chatchpoint must be String");
247
+ if (TYPE(value) != T_STRING) {
248
+ rb_raise(rb_eTypeError, "value of a catchpoint must be String");
249
249
  }
250
- if(NIL_P(value))
251
- rdebug_catchpoints = Qnil;
252
- else
253
- rb_hash_aset(rdebug_catchpoints, rb_str_dup(value),
254
- INT2FIX(0));
250
+ rb_hash_aset(rdebug_catchpoints, rb_str_dup(value), INT2FIX(0));
255
251
  return value;
256
252
  }
257
253
 
@@ -575,7 +571,9 @@ Init_breakpoint()
575
571
  rb_define_method(cBreakpoint, "pos=", breakpoint_set_pos, 1);
576
572
  rb_define_method(cBreakpoint, "source", breakpoint_source, 0);
577
573
  rb_define_method(cBreakpoint, "source=", breakpoint_set_source, 1);
578
- idEval = rb_intern("eval");
574
+ idEval = rb_intern("eval");
575
+ rdebug_catchpoints = rb_hash_new();
576
+
579
577
  }
580
578
 
581
579
 
@@ -6,7 +6,7 @@
6
6
  #include <st.h>
7
7
  #include <version.h>
8
8
 
9
- #define DEBUG_VERSION "0.10.1"
9
+ #define DEBUG_VERSION "0.10.2"
10
10
 
11
11
 
12
12
  #ifdef _WIN32
@@ -718,11 +718,31 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
718
718
  if(debug == Qtrue)
719
719
  fprintf(stderr, "%s:%d [%s] %s\n", file, line, get_event_name(event), rb_id2name(mid));
720
720
 
721
+ /* There can be many event calls per line, but we only want
722
+ *one* breakpoint per line. */
721
723
  if(debug_context->last_line != line || debug_context->last_file == NULL ||
722
724
  strcmp(debug_context->last_file, file) != 0)
723
725
  {
724
726
  CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT);
725
727
  moved = 1;
728
+ }
729
+ else if(event == RUBY_EVENT_LINE)
730
+ {
731
+ /* There are two line-event trace hook calls per IF node - one
732
+ before the expression eval an done afterwards.
733
+ */
734
+ /* FIXME: the static variable can't be safely used here, since this method
735
+ is re-entrant by multiple threads. If we want to provide this kind of functionality
736
+ if_eval_event variable must be moved to debug_context structure.
737
+ */
738
+ /*
739
+ static int if_eval_event = 0;
740
+ if_eval_event = (NODE_IF == nd_type(node)) ? !if_eval_event : 0;
741
+ if (!if_eval_event)
742
+ {
743
+ CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT);
744
+ }
745
+ */
726
746
  }
727
747
  }
728
748
  else if(event != RUBY_EVENT_RETURN && event != RUBY_EVENT_C_RETURN)
@@ -796,9 +816,8 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
796
816
  debug_context->breakpoint = Qnil;
797
817
  }
798
818
 
799
- reset_stepping_stop_points(debug_context);
800
- call_at_line(context, debug_context, rb_str_new2(file),
801
- INT2FIX(line));
819
+ reset_stepping_stop_points(debug_context);
820
+ call_at_line(context, debug_context, rb_str_new2(file), INT2FIX(line));
802
821
  }
803
822
  break;
804
823
  }
@@ -850,15 +869,11 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
850
869
  {
851
870
  if(debug_context->stack_size == debug_context->stop_frame)
852
871
  {
853
- if(debug_context->stack_size == 0)
854
- save_call_frame(event, self, file, line, mid, debug_context);
855
- else
856
- set_frame_source(event, debug_context, self, file, line, mid);
857
- binding = self? create_binding(self) : Qnil;
858
- save_top_binding(debug_context, binding);
859
- call_at_return(context, debug_context, rb_str_new2(file),
860
- INT2FIX(line));
861
- debug_context->dest_frame = -1;
872
+ debug_context->stop_next = 1;
873
+ debug_context->stop_frame = 0;
874
+ /* NOTE: can't use call_at_line function here to trigger a debugger event.
875
+ this can lead to segfault. We should only unroll the stack on this event.
876
+ */
862
877
  }
863
878
  while(debug_context->stack_size > 0)
864
879
  {
@@ -866,6 +881,7 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
866
881
  if(debug_context->frames[debug_context->stack_size].orig_id == mid)
867
882
  break;
868
883
  }
884
+ CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT);
869
885
  break;
870
886
  }
871
887
  case RUBY_EVENT_CLASS:
@@ -912,23 +928,23 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
912
928
  #endif
913
929
 
914
930
  if (rdebug_catchpoints == Qnil ||
915
- RHASH(rdebug_catchpoints)->tbl->num_entries == 0)
931
+ RHASH(rdebug_catchpoints)->tbl->num_entries == 0)
916
932
  break;
917
933
 
918
934
  ancestors = rb_mod_ancestors(expn_class);
919
935
  for(i = 0; i < RARRAY(ancestors)->len; i++)
920
936
  {
921
- VALUE mod_name;
922
- VALUE hit_count;
937
+ VALUE mod_name;
938
+ VALUE hit_count;
923
939
 
924
940
  aclass = rb_ary_entry(ancestors, i);
925
- mod_name = rb_mod_name(aclass);
926
- hit_count = rb_hash_aref(rdebug_catchpoints, mod_name);
941
+ mod_name = rb_mod_name(aclass);
942
+ hit_count = rb_hash_aref(rdebug_catchpoints, mod_name);
927
943
  if(hit_count != Qnil)
928
944
  {
929
- hit_count = INT2FIX(FIX2INT(rb_hash_aref(rdebug_catchpoints,
930
- mod_name)+1));
931
- rb_hash_aset(rdebug_catchpoints, mod_name, hit_count);
945
+ hit_count = INT2FIX(FIX2INT(rb_hash_aref(rdebug_catchpoints,
946
+ mod_name)+1));
947
+ rb_hash_aset(rdebug_catchpoints, mod_name, hit_count);
932
948
  debug_context->stop_reason = CTX_STOP_CATCHPOINT;
933
949
  rb_funcall(context, idAtCatchpoint, 1, ruby_errinfo);
934
950
  if(self && binding == Qnil)
@@ -1011,7 +1027,7 @@ debug_start(VALUE self)
1011
1027
  {
1012
1028
  locker = Qnil;
1013
1029
  rdebug_breakpoints = rb_ary_new();
1014
- rdebug_catchpoints = rb_hash_new();
1030
+ rdebug_catchpoints = rb_hash_new();
1015
1031
  rdebug_threads_tbl = threads_table_create();
1016
1032
 
1017
1033
  rb_add_event_hook(debug_event_hook, RUBY_EVENT_ALL);
@@ -1361,23 +1377,31 @@ debug_thread_inherited(VALUE klass)
1361
1377
 
1362
1378
  /*
1363
1379
  * call-seq:
1364
- * Debugger.debug_load(file, stop = false) -> nil
1380
+ * Debugger.debug_load(file, stop = false, increment_start = false) -> nil
1365
1381
  *
1366
1382
  * Same as Kernel#load but resets current context's frames.
1367
- * +stop+ parameter force the debugger to stop at the first line of code in the +file+
1383
+ * +stop+ parameter forces the debugger to stop at the first line of code in the +file+
1384
+ * +increment_start+ determines if start_count should be incremented. When
1385
+ * control threads are used, they have to be set up before loading the
1386
+ * debugger; so here +increment_start+ will be false.
1368
1387
  * FOR INTERNAL USE ONLY.
1369
1388
  */
1370
1389
  static VALUE
1371
1390
  debug_debug_load(int argc, VALUE *argv, VALUE self)
1372
1391
  {
1373
- VALUE file, stop, context;
1392
+ VALUE file, stop, context, increment_start;
1374
1393
  debug_context_t *debug_context;
1375
1394
  int state = 0;
1376
1395
 
1377
- if(rb_scan_args(argc, argv, "11", &file, &stop) == 1)
1378
- stop = Qfalse;
1396
+ if(rb_scan_args(argc, argv, "12", &file, &stop, &increment_start) == 1)
1397
+ {
1398
+ stop = Qfalse;
1399
+ increment_start = Qtrue;
1400
+ }
1379
1401
 
1380
1402
  debug_start(self);
1403
+ if (Qfalse == increment_start) start_count--;
1404
+
1381
1405
  context = debug_current_context(self);
1382
1406
  Data_Get_Struct(context, debug_context_t, debug_context);
1383
1407
  debug_context->stack_size = 0;
Binary file
@@ -0,0 +1,957 @@
1
+ 2008-05-15 16:05 Rocky Bernstein
2
+
3
+ * ChangeLog: Handle "catch nnn off" Forgotten there during r656.
4
+ From mkrauskopf [#20156].
5
+
6
+ 2008-05-05 18:05 Rocky Bernstein
7
+
8
+ * ChangeLog: make test-frame installation independent. Bug #19931
9
+
10
+ 2008-04-29 13:37 Rocky Bernstein
11
+
12
+ * ChangeLog: Test line number in "continue" command for validity.
13
+
14
+ 2008-04-28 16:16 Rocky Bernstein
15
+
16
+ * ChangeLog: From Martin Krauskopf via patch #19779
17
+
18
+ Allow folks to configure Ruby used for CLI tests in the
19
+ test/config.yaml. The defaults are for native Ruby, so nothing
20
+ needs
21
+ to be done for ruby-debug.
22
+
23
+ Developers of interfaces other than cli might override
24
+ config.yaml by
25
+ customized config.private.yaml which is ignored. So there will be
26
+ no
27
+ trash in e.g. 'svn st' output when developer customize the Ruby
28
+ to be
29
+ used.
30
+
31
+ Handy for alternative interface implementations using
32
+ svn:externals.
33
+
34
+ 2008-04-22 02:49 Rocky Bernstein
35
+
36
+ * ruby-debug-base.rb: Experiment with debugger(steps=0). Puts us in
37
+ the debugger call, but this may be the best we can do for now.
38
+ See tracker
39
+ #19639.
40
+
41
+ 2008-04-16 01:11 Rocky Bernstein
42
+
43
+ * ChangeLog: In 0.10.2 now. Some work to cope systems without
44
+ readline. More work is needed.
45
+ Add test of "set autoeval." Undefined command message more
46
+ closely like gdb's.
47
+
48
+ 2008-04-10 08:49 Rocky Bernstein
49
+
50
+ * ChangeLog: linecache is required by ruby-debug-base not
51
+ ruby-debug. Thanks Martin!
52
+
53
+ 2008-04-10 08:00 Rocky Bernstein
54
+
55
+ * ChangeLog: Last change before 0.10.1 release.
56
+
57
+ 2008-04-10 02:03 Rocky Bernstein
58
+
59
+ * ChangeLog: Cosmetic stuff: spelling corrections. Update node
60
+ structure so texinfo
61
+ doesn't complain.
62
+
63
+ 2008-04-08 14:52 Rocky Bernstein
64
+
65
+ * ChangeLog: autorequire is deprecated and presumably no longer
66
+ needed
67
+ http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/182827
68
+
69
+ 2008-04-07 00:36 Rocky Bernstein
70
+
71
+ * ChangeLog, ruby-debug-base.rb: ruby-debug-base.rb: document
72
+ Debugger.start parameters.
73
+ CHANGES: Revise what's happened
74
+ test-shortkey.el: A failing regression test because I think
75
+ rdebug-shortkey-mode
76
+ is not correct.
77
+
78
+ 2008-04-03 19:01 Rocky Bernstein
79
+
80
+ * ChangeLog, ruby-debug-base.rb: Allow setting :post_mortem => true
81
+ from Debugger.start.
82
+
83
+ 2008-03-28 13:53 Rocky Bernstein
84
+
85
+ * ChangeLog: Don't unconditionally turn on short-key mode when
86
+ annotations are on. Use rdebug-short-key-mode setting to decide.
87
+
88
+ 2008-03-23 17:47 Rocky Bernstein
89
+
90
+ * ChangeLog: set.rb -> settings.rb since it's already one command
91
+ per file, and
92
+ remove another :nodoc.
93
+ Rakefile: split long line
94
+
95
+ 2008-03-18 16:05 Rocky Bernstein
96
+
97
+ * ChangeLog: Fix bug in 'list' command when wrapping off the end.
98
+ test-finish.rb: tolerate buggy in Ruby versions <= 1.8.7.
99
+
100
+ 2008-03-13 02:15 Rocky Bernstein
101
+
102
+ * ruby-debug-base.rb: INCOMPATIBLE CHANGE: "finish" works like gdb
103
+ - stop just before the
104
+ most recent method finishes. Will now accept a number which stops
105
+ that
106
+ many frames completed. (Note that return line numbers will be
107
+ funny,
108
+ the first line of the method until Ruby 1.8.7.)
109
+
110
+ 2008-03-10 13:28 Rocky Bernstein
111
+
112
+ * ChangeLog: Dunno why we are now one line number less. So be it
113
+ (for now).
114
+
115
+ 2008-03-09 23:30 Rocky Bernstein
116
+
117
+ * ChangeLog: For now we require the duplicate numbers on
118
+ conditionals.
119
+
120
+ 2008-03-02 04:20 Rocky Bernstein
121
+
122
+ * ruby-debug-base.rb: Better error message for an invalid break
123
+ command.
124
+
125
+ 2008-02-28 05:06 Rocky Bernstein
126
+
127
+ * ChangeLog: breakpoints.{cmd,right}: test for an invalid stopping
128
+ line number
129
+ rdebug-fns.el: move generic split-string-and-unquote from
130
+ rdebug-core.
131
+ rdebug-core.el: Add rdebug-common-init to replace
132
+ gud-common-init. Is
133
+ simpler, and finds files better via debugger output/annotations.
134
+ Fix bug in rdebug-setup-windows: gud-find-file can return nil,
135
+ and
136
+ we still need to set buf.
137
+
138
+ 2008-02-27 04:04 Rocky Bernstein
139
+
140
+ * ruby-debug-base.rb: Slightly more robust handle_post_mortem.
141
+
142
+ 2008-02-26 17:31 Rocky Bernstein
143
+
144
+ * ChangeLog: Go over source location positioning. 0 is now the
145
+ oldest (first) position. Add M-S-down and M-S-up for first and
146
+ last. More tests needed in test-fns.el and need to prompt on wrap
147
+ around.
148
+
149
+ 2008-02-26 00:57 Rocky Bernstein
150
+
151
+ * ChangeLog: Fix bug in "info file xxx breakpoints".
152
+
153
+ 2008-02-24 16:36 Rocky Bernstein
154
+
155
+ * ChangeLog: rdebug; make more Ruby 1.9 compatible.
156
+
157
+ 2008-02-24 16:14 Rocky Bernstein
158
+
159
+ * ChangeLog: Minor changes.
160
+ rdbg.rb: don't need $DEBUG test any more
161
+ rdebug-regexp.el: go over with checkdoc
162
+ bin/rdebug: use PATH_SEPARATOR (for 'doze again)
163
+
164
+ 2008-02-24 04:51 Rocky Bernstein
165
+
166
+ * ChangeLog: CLI: Add long help for "info file".
167
+
168
+ test/test-help.rb: Make test failures easier to fix and more like
169
+ the
170
+ other tests.
171
+
172
+ emacs/test: finish testing all of the funcitons in rdebug-fns.el
173
+
174
+ rdebug-layouts.el: Make checkdoc clean.
175
+ rdebug-track.el: don't need to rename shell buffer. Do it as an
176
+ option only.
177
+ rdebug-secondary.el: get rid of hoaky buffer finding for at least
178
+ gud-comint-buf. (Should probably do others as well)
179
+
180
+ DOC: Note weird line stopping locations. Describe what "ctrl" in
181
+ prompt means.
182
+
183
+ 2008-02-21 02:56 Rocky Bernstein
184
+
185
+ * ChangeLog: Fringe for frame buffer the same as in source code.
186
+ Move
187
+ miscellaneous small functions to a new file. Reduce duplication
188
+ of
189
+ "chomp" code.
190
+
191
+ 2008-02-19 23:44 Rocky Bernstein
192
+
193
+ * ChangeLog: rdebug-cmd.el: M-insert toggles shortkey mode in the
194
+ command buffer
195
+ rdebug: search for Ruby program if file is not found and no
196
+ SEPARATOR
197
+ chars in the filename
198
+
199
+ 2008-02-18 19:56 Rocky Bernstein
200
+
201
+ * ChangeLog: Frame switching shouldn't be recorded in position
202
+ history ring.
203
+
204
+ 2008-02-17 13:57 Rocky Bernstein
205
+
206
+ * ruby-debug-base.rb: Add Debugger.last_exception. Show exception
207
+ in post-mortem when "info program"
208
+ is issued. Reorganize list of major changes better.
209
+
210
+ 2008-02-13 21:47 Rocky Bernstein
211
+
212
+ * ChangeLog: processor.rb: spelled "post-mortem" incorrectly in
213
+ prompt.
214
+
215
+ 2008-02-13 17:32 Rocky Bernstein
216
+
217
+ * ChangeLog: Set up keys for comint-next-prompt and
218
+ comint-previous-prompt.
219
+
220
+ 2008-02-12 02:06 Rocky Bernstein
221
+
222
+ * ChangeLog: Fix bug in "info thread verbose" which wasn't showing
223
+ full traceback.
224
+
225
+ 2008-02-09 15:48 Rocky Bernstein
226
+
227
+ * ChangeLog: helper.rb Failed attempt to DRY tests more. But save
228
+ what we have
229
+ which may someday in the future be used to go further. Minus to
230
+ undercore in Data file names in preparation such time. (We'll use
231
+ the
232
+ filename as the test name).
233
+
234
+ testing
235
+
236
+ 2008-02-06 16:15 Rocky Bernstein
237
+
238
+ * ChangeLog: Add 'nowarn to find-file-noselect and test that we
239
+ don't get a warning.
240
+
241
+ 2008-02-05 01:41 Rocky Bernstein
242
+
243
+ * ChangeLog: rdebug.el: Add a defgroup for rdebug so customization
244
+ in Emacs 23 is possible.
245
+ Some other minor doc fixes.
246
+ setshow.* make sure we don't have an $Id line that we have to
247
+ check against.
248
+
249
+ 2008-02-03 15:23 Rocky Bernstein
250
+
251
+ * ChangeLog: Try to get testing a little more organized, although
252
+ more work should
253
+ be done: Create a data directory for comparison ("right") and
254
+ script
255
+ command ("cmd") files. Code is now more uniform (and should DRY'd
256
+ a
257
+ bit more).
258
+
259
+ 2008-02-02 23:10 Rocky Bernstein
260
+
261
+ * ChangeLog: Remove commands in post-mortem which are not
262
+ applicable, e.g."step",
263
+ "next", "continue"...
264
+
265
+ "No breakpoints have been set" is now an error message when
266
+ trying to
267
+ set a breakpoint.
268
+
269
+ Add post-mortem test.
270
+
271
+ Debug.init no longer exists.
272
+
273
+ 2008-02-02 09:27 Rocky Bernstein
274
+
275
+ * ruby-debug-base.rb: Remove Debugger.init and fold options
276
+ parameter into Debugger.start.
277
+ Old Debugger.start has been renamed Deebugger.start_
278
+
279
+ 2008-01-31 16:30 Rocky Bernstein
280
+
281
+ * ChangeLog: Leave ruby_debug.c this way for now.
282
+
283
+ 2008-01-31 16:24 Rocky Bernstein
284
+
285
+ * ChangeLog: ruby_debug.c: more adventures in exception handling
286
+ processor.rb: Removal of crash when annotate is on. Need to fix
287
+ the source of the
288
+ problem though.
289
+
290
+ 2008-01-31 15:16 Rocky Bernstein
291
+
292
+ * ruby-debug-base.rb: Handle post-mortem and exception traceback
293
+ reporting in ruby-debug
294
+
295
+ 2008-01-30 17:01 Rocky Bernstein
296
+
297
+ * ChangeLog: Add Command.find() to find a subcommand name.
298
+ condition.right: correct for breakpoint hit counts.
299
+
300
+ 2008-01-30 01:43 Rocky Bernstein
301
+
302
+ * ChangeLog: Add number of times a breakpoint is hit like gdb does.
303
+
304
+ 2008-01-29 22:37 Rocky Bernstein
305
+
306
+ * ChangeLog: Columnize breakpoint output.
307
+
308
+ 2008-01-29 11:20 Rocky Bernstein
309
+
310
+ * ChangeLog: More annotate=2 fixes.
311
+
312
+ 2008-01-28 15:59 Rocky Bernstein
313
+
314
+ * ChangeLog: Add info file breakpoints to show lines which we can
315
+ set a breakpoint on.
316
+ Revise so we chdir into SRC_DIR.
317
+ test-hist.rb is broken - will fix later.
318
+
319
+ 2008-01-25 12:11 Rocky Bernstein
320
+
321
+ * ChangeLog, ruby-debug-base.rb: Add Debugger.init which intializes
322
+ things that rdebug does. This
323
+ allows a restart even though rdebug wasn't called initially.
324
+
325
+ 2008-01-22 23:15 Rocky Bernstein
326
+
327
+ * ChangeLog: Allow "help info xxx". Add ability for long help on
328
+ "info" command.
329
+ Add "info break xx".
330
+
331
+ test: remove test/unit class name conflicts. All the tests we
332
+ wrote
333
+ now get run.
334
+
335
+ 2008-01-19 19:28 Rocky Bernstein
336
+
337
+ * ChangeLog: Move ruby-debug-base tests to base directory. Add a
338
+ binding_n regression test.
339
+
340
+ 2008-01-16 18:42 Rocky Bernstein
341
+
342
+ * ChangeLog: Need to present source filename (__FILE__) as Ruby and
343
+ therefore breakpoint
344
+ sees it.
345
+
346
+
347
+ 2008-01-16 02:19 Rocky Bernstein
348
+
349
+ * ChangeLog, ruby-debug-base.rb: Line caching moved to an external
350
+ gem, linecache. We now require
351
+ version 0.2 of that or greater.
352
+
353
+ 2008-01-14 01:31 Rocky Bernstein
354
+
355
+ * ChangeLog: Make rdebug-track work better in the face of prompt
356
+ and error annotations.
357
+ control.rb: need another test when rdebug not called initially.
358
+
359
+ 2008-01-13 21:51 Rocky Bernstein
360
+
361
+ * ChangeLog: Some stack -> frame renaming
362
+ ext/breakpoint.c: put methods in alpha order (to help with
363
+ reference man)
364
+ breakpoints.rb: one print -> errmsg
365
+
366
+ 2008-01-13 18:13 Rocky Bernstein
367
+
368
+ * ChangeLog: Create errmsg routine for error output, start tagging
369
+ error messages
370
+ as errors. Under annotate 3, output errors similar to gdb
371
+ --annotate
372
+ does (although still simplified). Have Emacs pick up debugger
373
+ error
374
+ annotations.
375
+
376
+ 2008-01-13 04:05 Rocky Bernstein
377
+
378
+ * ChangeLog: Check validity of expressions in breakpoint conditions
379
+ and don't allow
380
+ enabling a syntactically invalid expression.
381
+
382
+ Start noting messages which are errors via an errmsg routine.
383
+
384
+ 2008-01-11 10:26 Rocky Bernstein
385
+
386
+ * ChangeLog: Document that ruby-debug resets $0. Align program
387
+ options in ref manual and --help. Alphabetize better.
388
+
389
+ 2008-01-10 22:56 Rocky Bernstein
390
+
391
+ * ChangeLog: More correct $0 fix. Deal with the case ./ is
392
+ automatically added.
393
+ However this might not be right in all cases.
394
+
395
+ 2008-01-10 22:25 Rocky Bernstein
396
+
397
+ * ChangeLog: Was gobbling arg in processing --emacs. Add test.
398
+
399
+ 2008-01-10 10:34 Rocky Bernstein
400
+
401
+ * ChangeLog: Add condition command.
402
+
403
+ 2008-01-09 19:10 Rocky Bernstein
404
+
405
+ * ChangeLog: Rakefile: rdebug.rb -> rdbg.el
406
+ rdebug-dbg.el: Add $Id$
407
+
408
+ 2008-01-09 19:03 Rocky Bernstein
409
+
410
+ * ChangeLog: Break out secondary buffer into their own file, and
411
+ also internal
412
+ debug code and general secondary commands. Secondary buffer code
413
+ removed from rdebug-cmd and moved into the appropriate file.
414
+
415
+ rdebug-edit-variables-value is not defined so comment out for
416
+ now.
417
+
418
+ 2008-01-08 16:04 Rocky Bernstein
419
+
420
+ * ChangeLog: Restore $: to the value it was before rdebug call.
421
+
422
+ 2008-01-07 20:38 Rocky Bernstein
423
+
424
+ * ChangeLog: Add "var class". This means "var const .." can no
425
+ longer be abbreviated "var c"; use "var co" instead.
426
+ (Or "var const" or "var constant"
427
+
428
+ 2008-01-07 19:57 Rocky Bernstein
429
+
430
+ * ChangeLog: Add class level variables to "info variables"
431
+
432
+ 2008-01-07 17:37 Rocky Bernstein
433
+
434
+ * ChangeLog: Add "self" to list "info variables" spits out.
435
+
436
+ 2008-01-07 09:59 Rocky Bernstein
437
+
438
+ * ChangeLog: --emacs sets width to 120. rdebug-core.el will reset
439
+ to 120 unless it's already that.
440
+
441
+ 2008-01-07 04:29 Rocky Bernstein
442
+
443
+ * ChangeLog: Split out ChangeLogs better (I hope).
444
+
445
+ 2008-01-06 20:56 Rocky Bernstein
446
+
447
+ * ChangeLog: test/*-emacs-basic*, tdebug: Add test of running in
448
+ Emacs without annotations.
449
+
450
+ emacs/*.el: make regexp tests work again, move regexp to from
451
+ core to regexp.
452
+ Add an annotate regexp test.
453
+
454
+ processor.rb: Remove some anotation print from bleeding into
455
+ output
456
+ when annotations are not wanted. Reinstate "Program finished" in
457
+ annotations and outside (rdebug).
458
+
459
+ 2008-01-06 18:55 Rocky Bernstein
460
+
461
+ * ChangeLog: Create Processor class and subclass that. Perhaps a
462
+ mixin would be good.
463
+ Remove annotation output bleanding when annotate is off.
464
+ Try to reduce the mess annotations is adding to processor.rb
465
+ rdebug-core.el: fix indentation to pass the regression test
466
+ Anders added
467
+ Makefile.am: Add rdebug-source.el to distribution.
468
+ Make sure "rake test"
469
+
470
+ 2008-01-06 02:15 Rocky Bernstein
471
+
472
+ * ChangeLog: Some work on saving state across a restart. More work
473
+ is needed on the
474
+ script command to get this working. The save-file name is now
475
+ optional. save.rb split off from script.rb Display expressions
476
+ and
477
+ some settings are now captured in the save/restore file.
478
+ Add interface.finalize - things that need to be done before quit
479
+ or
480
+ restart.
481
+
482
+ 2008-01-05 21:16 Rocky Bernstein
483
+
484
+ * ChangeLog: More work to make annotate more like gdb's.
485
+ starting/stopping/exiting
486
+ should be more similar. Some code has been commented out until we
487
+ get
488
+ the Emacs interface to match. See "FIXME: ANNOTATE" in
489
+ processor.rb.
490
+ Also regression tests for output and annotate currently fail for
491
+ this
492
+ reason.
493
+
494
+ 2008-01-02 20:35 Rocky Bernstein
495
+
496
+ * ChangeLog: helper.rb: add regexp for a position. TODO: add
497
+ parsing routine and use in
498
+ various commands
499
+
500
+ 2008-01-02 14:41 Rocky Bernstein
501
+
502
+ * ChangeLog: processor.rb: Redo where starting/exiting annotations
503
+ are done.
504
+ rdebug.el: back off on setting output command for now.
505
+
506
+ 2008-01-01 15:23 Rocky Bernstein
507
+
508
+ * ChangeLog: Fix --emacs to do --no-quit properly.
509
+
510
+ 2008-01-01 09:00 Rocky Bernstein
511
+
512
+ * ChangeLog: Remove RDoc warnings caused because C files have been
513
+ split up.
514
+
515
+ 2008-01-01 05:51 Rocky Bernstein
516
+
517
+ * ChangeLog: reindent -> indent. Makefile.am: wasn't including all
518
+ test files.
519
+
520
+ 2007-12-31 06:26 Rocky Bernstein
521
+
522
+ * ChangeLog: Rakefile: add spit-off C files to ruby-debug-base gem.
523
+
524
+ 2007-12-31 06:23 Rocky Bernstein
525
+
526
+ * ChangeLog: rdebug-test-cmd.el: Indentation
527
+
528
+ 2007-12-31 06:08 Rocky Bernstein
529
+
530
+ * ChangeLog: Changes and more changes.
531
+
532
+ 2007-12-29 13:31 Rocky Bernstein
533
+
534
+ * ChangeLog: Remove looping on quit. "-n" is broken so remove it
535
+ for now.
536
+
537
+ 2007-12-28 15:33 Rocky Bernstein
538
+
539
+ * ChangeLog: info.rb: Incorrect test for no display expressions.
540
+ display.rb: Grammar thing.
541
+ processor.rb: Slightly cleaner code
542
+ test/* more/better tests.
543
+
544
+ 2007-12-27 21:03 Rocky Bernstein
545
+
546
+ * ChangeLog: Be more agressive about resetting gud-last-frame and
547
+ gud-last-last-frame. These foul up tracking when debugging is
548
+ interrupted.
549
+ We probably need a special "reset" command.
550
+
551
+ 2007-12-26 18:35 Rocky Bernstein
552
+
553
+ * ChangeLog: Version number games - maybe 0.10.1 is better.
554
+
555
+ 2007-12-25 23:40 Rocky Bernstein
556
+
557
+ * ChangeLog: Add step- and step+. Document as well as the new
558
+ toggle command.
559
+
560
+ 2007-12-25 09:55 Rocky Bernstein
561
+
562
+ * ChangeLog: Small doc fixes.
563
+
564
+ 2007-12-25 07:51 Rocky Bernstein
565
+
566
+ * ChangeLog: Last commit before 0.10.0 release.
567
+
568
+ 2007-12-25 02:51 Rocky Bernstein
569
+
570
+ * ChangeLog: breakpoints.*: main -> Object. Add bad Class name test
571
+ AUTHOR: Add Anders
572
+ README: note ruby-debug-extra. More precise (I think)
573
+
574
+ 2007-12-24 00:25 Rocky Bernstein
575
+
576
+ * ChangeLog: Rakefile: set up gem unit test for ruby-debug-base.
577
+ Add file in test/
578
+ so we could do the same for ruby-debug were it not for other
579
+ mysterious
580
+ problems.
581
+
582
+ 2007-12-23 17:33 Rocky Bernstein
583
+
584
+ * ChangeLog: Go over packaging:
585
+ ChangeLogs for ruby-debug-base (in ext and lib) separate from CLI
586
+ ChangeLog
587
+ ChangeLogs now map userid to names
588
+ ruby-debug-base regression test included in ruby-debug-base
589
+ Columnize test separated. (It will disappear when ruby-debug
590
+ requires it
591
+ as an external)
592
+
593
+ 2007-12-16 21:31 Rocky Bernstein
594
+
595
+ * ruby-debug-base.rb: Add "info variables test".
596
+
597
+ ruby-debug-base.rb: Not sure how test(?M, file) ever worked
598
+ before but change
599
+ to use File.stat(file).mtime
600
+ info.rb: ignore debugger variables which are sometimes set.
601
+
602
+ 2007-12-10 03:23 Rocky Bernstein
603
+
604
+ * ruby-debug-base.rb: doc changes.
605
+
606
+ 2007-06-26 07:05 Rocky Bernstein
607
+
608
+ * ruby-debug-base.rb: Run .rdebugrc on Debugger.start. Look for
609
+ this in the current directory and run that instead the one in
610
+ $HOME if that exists. Again, inspired and compatible with gdb.
611
+
612
+ rdebug: Check script for syntax errors before loading. We get
613
+ more informative errors and it doesn't look like rdebug is at
614
+ fault.
615
+
616
+ 2007-06-05 16:36 Kent Sibilev
617
+
618
+ * ruby-debug-base.rb: code reorganization.
619
+ reverted 'run' command.
620
+
621
+ 2007-06-05 07:59 Kent Sibilev
622
+
623
+ * ruby-debug-base.rb: restore post_mortem
624
+
625
+ 2007-06-02 15:01 Rocky Bernstein
626
+
627
+ * ruby-debug-base.rb: lib/ruby-debug-base.rb: add Quit and Restart
628
+ exceptions which can reliably be used after the delayed exception
629
+ handling bug is fixed
630
+ emacs/rdebug-track.el and cli/ruby-debug/processor.rb: more
631
+ accurate line tracking in EMACS. When not in emacs should be more
632
+ like what was there.
633
+
634
+ 2007-06-01 21:57 Rocky Bernstein
635
+
636
+ * ruby-debug-base.rb: parens around a print seems to give a
637
+ warning. Remove.
638
+
639
+ 2007-05-23 16:43 Rocky Bernstein
640
+
641
+ * ruby-debug-base.rb: post_mortem: to test $! *before* running
642
+ debug_at_ext or else we may get an erroneous message:
643
+ ruby-debug-base.rb:162:in `current_context': Debugger.start is
644
+ not called yet. (RuntimeError)
645
+
646
+ A simple test case to show the problem:
647
+
648
+ "require rubygems"
649
+ "require ruby-debug"
650
+ Debugger.start
651
+ Debugger.post_mortem
652
+ exit # Causes us to incorrectly give the above error
653
+
654
+ 2007-05-15 20:22 Kent Sibilev
655
+
656
+ * ruby-debug-base.rb: various fixes
657
+
658
+ 2007-04-27 23:21 Kent Sibilev
659
+
660
+ * ruby-debug-base.rb: ditto
661
+
662
+ 2007-04-27 23:19 Kent Sibilev
663
+
664
+ * ruby-debug-base.rb: add breakpoint method as an alias for
665
+ debugger in case breakpoint method is not defined already
666
+
667
+ 2007-03-25 01:03 Kent Sibilev
668
+
669
+ * ruby-debug-base.rb: will start the debugger if necessary
670
+
671
+ 2007-03-24 18:17 Kent Sibilev
672
+
673
+ * : stable becomes the trunk
674
+
675
+ 2007-03-13 17:06 Kent Sibilev
676
+
677
+ * : fixed rdoc
678
+
679
+ 2007-03-01 23:44 Kent Sibilev
680
+
681
+ * : fixed post-mortem
682
+
683
+ 2007-02-27 08:02 Kent Sibilev
684
+
685
+ * : repackaging ruby-debug
686
+
687
+ 2007-02-23 20:56 Kent Sibilev
688
+
689
+ * : added an option for Debugger.debug_load to stop at the first
690
+ line of code
691
+
692
+ 2007-02-12 06:59 Kent Sibilev
693
+
694
+ * : added --emacs option
695
+
696
+ 2007-02-09 16:56 Kent Sibilev
697
+
698
+ * : in remote mode the debugger shouldn't stop inside of rdebug
699
+ script
700
+
701
+ 2007-02-09 06:20 Kent Sibilev
702
+
703
+ * : --
704
+
705
+ 2007-02-09 01:00 Kent Sibilev
706
+
707
+ * : fixed code reloading
708
+ made 'reload on' as a part of the 'set' command
709
+ evaluate ~/.rdebugrc as an init script
710
+
711
+ 2007-02-07 02:42 Kent Sibilev
712
+
713
+ * : should use ignored? method to check for the debugger's thread
714
+
715
+ 2007-02-06 22:21 Kent Sibilev
716
+
717
+ * :
718
+
719
+ 2007-02-05 22:48 Kent Sibilev
720
+
721
+ * : --
722
+
723
+ 2007-02-05 22:11 Kent Sibilev
724
+
725
+ * : fixed emacs integration
726
+
727
+ 2007-02-05 20:16 Kent Sibilev
728
+
729
+ * : fixed another issue where a bogus frame is being left in the
730
+ stack
731
+
732
+ 2007-02-04 23:36 Kent Sibilev
733
+
734
+ * : seg fault bugfixes
735
+ fixed suspend/resume
736
+
737
+ 2007-02-04 03:49 Kent Sibilev
738
+
739
+ * : A better fix for the segmentation fault
740
+
741
+ 2007-02-03 20:24 Kent Sibilev
742
+
743
+ * : fix seg fault by avoiding ruby's bug
744
+ fixed Context#resume
745
+ when handling post-mortem all threads must be suspended
746
+
747
+ 2007-02-02 18:47 Kent Sibilev
748
+
749
+ * : removed ambiguity with down command
750
+
751
+ 2007-02-01 23:48 Kent Sibilev
752
+
753
+ * : typo
754
+
755
+ 2007-02-01 22:15 Kent Sibilev
756
+
757
+ * : made eval command available from the control thread
758
+
759
+ 2007-02-01 07:22 Kent Sibilev
760
+
761
+ * : added setting command
762
+ added Context#suspended? method
763
+ dispay suspended status in the thread list
764
+ display frame starting from zero
765
+
766
+ 2007-01-31 21:13 Kent Sibilev
767
+
768
+ * : ditto
769
+
770
+ 2007-01-31 21:12 Kent Sibilev
771
+
772
+ * : fixed help command
773
+
774
+ 2007-01-31 19:39 Kent Sibilev
775
+
776
+ * : fixed frame count
777
+ added frame_self method to context
778
+
779
+ 2007-01-31 16:48 Kent Sibilev
780
+
781
+ * : removed all references to frames array
782
+ fixed post-mortem debugging
783
+
784
+ 2007-01-31 00:51 Kent Sibilev
785
+
786
+ * : removed obsolete frames usage
787
+
788
+ 2007-01-31 00:41 Kent Sibilev
789
+
790
+ * : refactored out frame class and preallocate stack
791
+ made local variable available even when bindings are not
792
+ collected.
793
+
794
+ 2007-01-28 20:25 Kent Sibilev
795
+
796
+ * : --
797
+
798
+ 2007-01-28 06:22 Kent Sibilev
799
+
800
+ * : - Control thread is always started by rdebug script.
801
+ - Ability to specify negative frame number to frame commands.
802
+ Patch from R. Bernstein.
803
+
804
+ 2007-01-28 04:52 Kent Sibilev
805
+
806
+ * : added top frame caching
807
+ control thread is always started by rdebug script
808
+
809
+ 2007-01-27 01:43 Kent Sibilev
810
+
811
+ * : another performance optimization
812
+
813
+ 2007-01-26 20:28 Kent Sibilev
814
+
815
+ * : fixed #7484
816
+
817
+ 2007-01-26 17:59 Kent Sibilev
818
+
819
+ * : revisited file name comparing procedure
820
+
821
+ 2007-01-26 09:03 Kent Sibilev
822
+
823
+ * : performance improvements
824
+
825
+ 2007-01-26 03:12 Kent Sibilev
826
+
827
+ * : added option to exclude collecting of frame bindings
828
+
829
+ 2007-01-24 18:33 Kent Sibilev
830
+
831
+ * : disable tracing when in post-mortem
832
+ added -x/--trace option to rdebug script
833
+
834
+ 2007-01-21 08:13 Kent Sibilev
835
+
836
+ * :
837
+
838
+ 2007-01-21 03:34 Kent Sibilev
839
+
840
+ * : assign an id to the breakpoint
841
+
842
+ 2007-01-21 01:20 Kent Sibilev
843
+
844
+ * : added post_mortem_method wrap method
845
+
846
+ 2006-12-21 20:16 Kent Sibilev
847
+
848
+ * : added 'restart' command
849
+
850
+ 2006-12-21 14:12 Kent Sibilev
851
+
852
+ * : made 'exit' an alias to 'quit'
853
+ fixed the interoperability problem with rspec
854
+
855
+ 2006-12-21 13:43 Kent Sibilev
856
+
857
+ * : fixed trace command in post-mortem mode
858
+
859
+ 2006-12-21 01:59 Kent Sibilev
860
+
861
+ * : initialize only once
862
+
863
+ 2006-12-21 01:08 Kent Sibilev
864
+
865
+ * : fixes irb help command
866
+
867
+ 2006-12-20 21:19 Kent Sibilev
868
+
869
+ * : check that debugger has been started
870
+
871
+ 2006-12-20 20:08 Kent Sibilev
872
+
873
+ * : added post-mortem option to rdebug
874
+
875
+ 2006-12-20 19:38 Kent Sibilev
876
+
877
+ * : initial support for post-mortem debugging
878
+
879
+ 2006-12-19 06:13 Kent Sibilev
880
+
881
+ * : removed 'run' alias
882
+
883
+ 2006-12-18 08:34 Kent Sibilev
884
+
885
+ * : added irb command
886
+ fixed source_for method
887
+
888
+ 2006-12-02 19:15 Kent Sibilev
889
+
890
+ * : added reload command
891
+
892
+ 2006-12-02 18:32 Kent Sibilev
893
+
894
+ * : fixed #6518 and #6545
895
+
896
+ 2006-12-01 06:47 Kent Sibilev
897
+
898
+ * :
899
+
900
+ 2006-11-21 23:29 Kent Sibilev
901
+
902
+ * : ensure that on/off is the last on the line
903
+
904
+ 2006-11-16 00:04 Kent Sibilev
905
+
906
+ * : fixed debug_method for assignment methods
907
+
908
+ 2006-11-16 00:01 Kent Sibilev
909
+
910
+ * : added the new branch for the stable version
911
+
912
+ 2006-10-15 22:43 Kent Sibilev
913
+
914
+ * : branching a stable version
915
+
916
+ 2006-10-15 22:26 Kent Sibilev
917
+
918
+ * ruby-debug.rb: remove unused require
919
+ uploaded new windows binary
920
+
921
+ 2006-10-15 19:02 Kent Sibilev
922
+
923
+ * ruby-debug/commands/display.rb: remove unused constructor
924
+
925
+ 2006-10-15 16:54 Kent Sibilev
926
+
927
+ * ruby-debug.rb, ruby-debug/commands/threads.rb: new logic of
928
+ context suspend/resume
929
+
930
+ 2006-10-15 07:36 Kent Sibilev
931
+
932
+ * ruby-debug.rb, ruby-debug/lock.rb: fixed locking of debugger
933
+ threads
934
+
935
+ 2006-10-09 22:01 Kent Sibilev
936
+
937
+ * ruby-debug/interface.rb: fixes for windows version
938
+
939
+ 2006-10-09 19:06 Kent Sibilev
940
+
941
+ * ruby-debug.rb, ruby-debug/interface.rb: added Debugger.skip and
942
+ Debugger.debug_at_exit methods
943
+
944
+ 2006-10-09 16:44 Kent Sibilev
945
+
946
+ * ., ruby-debug, ruby-debug.rb, ruby-debug/command.rb,
947
+ ruby-debug/commands, ruby-debug/commands/breakpoints.rb,
948
+ ruby-debug/commands/catchpoint.rb,
949
+ ruby-debug/commands/control.rb, ruby-debug/commands/display.rb,
950
+ ruby-debug/commands/eval.rb, ruby-debug/commands/frame.rb,
951
+ ruby-debug/commands/help.rb, ruby-debug/commands/list.rb,
952
+ ruby-debug/commands/method.rb, ruby-debug/commands/script.rb,
953
+ ruby-debug/commands/stepping.rb, ruby-debug/commands/threads.rb,
954
+ ruby-debug/commands/tmate.rb, ruby-debug/commands/trace.rb,
955
+ ruby-debug/commands/variables.rb, ruby-debug/interface.rb,
956
+ ruby-debug/lock.rb, ruby-debug/processor.rb: initial import
957
+