ruby-debug-base 0.10.3 → 0.10.4
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 +15 -0
- data/Rakefile +69 -13
- data/VERSION +3 -0
- data/ext/breakpoint.c +8 -5
- data/ext/ruby_debug.c +21 -17
- data/ext/ruby_debug.h +1 -1
- data/ext/win32/Makefile +29 -21
- data/ext/win32/breakpoint.o +0 -0
- data/ext/win32/ruby_debug.o +0 -0
- data/ext/win32/ruby_debug.so +0 -0
- data/lib/ChangeLog +173 -57
- data/lib/ruby-debug-base.rb +10 -7
- data/test/base/base.rb +0 -0
- data/test/base/binding.rb +0 -0
- data/test/base/catchpoint.rb +0 -0
- data/test/base/reload_bug.rb +8 -0
- metadata +19 -8
data/CHANGES
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
0.10.4
|
2
|
+
10/27/10
|
3
|
+
|
4
|
+
- Various bug fixes:
|
5
|
+
* reload command.
|
6
|
+
* plain 'info' command
|
7
|
+
* improve list and list - (backwards) handling when hitting end of file
|
8
|
+
- Add ability to specify port to debug on
|
9
|
+
- Allow breakpoints at class methods
|
10
|
+
- "quit!" is same as "quit unconditionally"
|
11
|
+
- irb improvements: Access to non-executing rdebug commands inside irb via
|
12
|
+
"dbgr" method
|
13
|
+
- Go over documentation including that created by rdoc.
|
14
|
+
- For emacs package: add README, INSTALL, AUTHORS.
|
15
|
+
|
1
16
|
0.10.3
|
2
17
|
11/17/08
|
3
18
|
|
data/Rakefile
CHANGED
@@ -6,17 +6,37 @@ require 'rake/rdoctask'
|
|
6
6
|
require 'rake/testtask'
|
7
7
|
|
8
8
|
SO_NAME = "ruby_debug.so"
|
9
|
+
ROOT_DIR = File.dirname(__FILE__)
|
10
|
+
VERSION_FILE = ROOT_DIR + '/VERSION'
|
11
|
+
|
12
|
+
def make_version_file
|
13
|
+
ruby_debug_version = open("ext/ruby_debug.c").
|
14
|
+
grep(/^#define DEBUG_VERSION/).first[/"(.+)"/,1]
|
15
|
+
File.open(VERSION_FILE, 'w') do |f|
|
16
|
+
f.write(
|
17
|
+
"# This file was created automatically from data in ext/ruby_debug.c via:
|
18
|
+
# rake :make_version_file.
|
19
|
+
#{ruby_debug_version}
|
20
|
+
")
|
21
|
+
end
|
22
|
+
end
|
9
23
|
|
10
|
-
|
11
|
-
|
12
|
-
|
24
|
+
make_version_file unless File.exist?(VERSION_FILE)
|
25
|
+
ruby_debug_version = nil
|
26
|
+
open(VERSION_FILE).each do |line|
|
27
|
+
next if line =~ /^#/
|
28
|
+
ruby_debug_version = line.chomp
|
29
|
+
break
|
13
30
|
end
|
14
31
|
|
32
|
+
|
33
|
+
# ------- Default Package ----------
|
15
34
|
COMMON_FILES = FileList[
|
16
35
|
'AUTHORS',
|
17
36
|
'CHANGES',
|
18
37
|
'LICENSE',
|
19
38
|
'README',
|
39
|
+
'VERSION',
|
20
40
|
'Rakefile',
|
21
41
|
]
|
22
42
|
|
@@ -29,17 +49,23 @@ CLI_FILES = COMMON_FILES + FileList[
|
|
29
49
|
'ChangeLog',
|
30
50
|
'bin/*',
|
31
51
|
'doc/rdebug.1',
|
52
|
+
'test/rdebug-save.1',
|
32
53
|
'test/**/data/*.cmd',
|
33
54
|
'test/**/data/*.right',
|
55
|
+
'test/config.yaml',
|
34
56
|
'test/**/*.rb',
|
35
57
|
'rdbg.rb',
|
58
|
+
'runner.sh',
|
36
59
|
CLI_TEST_FILE_LIST
|
37
60
|
]
|
38
61
|
|
39
62
|
BASE_TEST_FILE_LIST = %w(
|
40
63
|
test/base/base.rb
|
41
64
|
test/base/binding.rb
|
42
|
-
test/base/catchpoint.rb
|
65
|
+
test/base/catchpoint.rb
|
66
|
+
test/base/reload_bug.rb
|
67
|
+
)
|
68
|
+
|
43
69
|
BASE_FILES = COMMON_FILES + FileList[
|
44
70
|
'ext/breakpoint.c',
|
45
71
|
'ext/extconf.rb',
|
@@ -51,9 +77,12 @@ BASE_FILES = COMMON_FILES + FileList[
|
|
51
77
|
]
|
52
78
|
|
53
79
|
desc "Test everything."
|
54
|
-
|
80
|
+
ext = File.join(ROOT_DIR, 'ext')
|
81
|
+
test_and_args = File.exist?(ext) ? {:test => :test_base} : [:test]
|
82
|
+
task test_and_args do
|
55
83
|
Rake::TestTask.new(:test) do |t|
|
56
|
-
t.libs
|
84
|
+
t.libs += %W(#{ROOT_DIR}/lib #{ROOT_DIR}/cli)
|
85
|
+
t.libs << ext if File.exist?(ext)
|
57
86
|
t.test_files = CLI_TEST_FILE_LIST
|
58
87
|
t.verbose = true
|
59
88
|
end
|
@@ -62,7 +91,7 @@ end
|
|
62
91
|
desc "Test ruby-debug-base."
|
63
92
|
task :test_base => :lib do
|
64
93
|
Rake::TestTask.new(:test_base) do |t|
|
65
|
-
t.libs
|
94
|
+
t.libs += ['./ext', './lib']
|
66
95
|
t.test_files = FileList[BASE_TEST_FILE_LIST]
|
67
96
|
t.verbose = true
|
68
97
|
end
|
@@ -88,9 +117,9 @@ end
|
|
88
117
|
|
89
118
|
desc "Create a GNU-style ChangeLog via svn2cl"
|
90
119
|
task :ChangeLog do
|
91
|
-
system(
|
92
|
-
system("svn2cl --authors=svn2cl_usermap
|
93
|
-
system("svn2cl --authors=svn2cl_usermap
|
120
|
+
system('svn2cl --authors=svn2cl_usermap http://ruby-debug.rubyforge.org/svn/trunk')
|
121
|
+
system("svn2cl --authors=svn2cl_usermap http://ruby-debug.rubyforge.org/svn/trunk/ext -o ext/ChangeLog")
|
122
|
+
system("svn2cl --authors=svn2cl_usermap http://ruby-debug.rubyforge.org/svn/trunk/lib -o lib/ChangeLog")
|
94
123
|
end
|
95
124
|
|
96
125
|
# Base GEM Specification
|
@@ -106,7 +135,7 @@ provides support that front-ends can build on. It provides breakpoint
|
|
106
135
|
handling, bindings for stack frames among other things.
|
107
136
|
EOF
|
108
137
|
|
109
|
-
spec.version =
|
138
|
+
spec.version = ruby_debug_version
|
110
139
|
|
111
140
|
spec.author = "Kent Sibilev"
|
112
141
|
spec.email = "ksibilev@yahoo.com"
|
@@ -136,7 +165,7 @@ cli_spec = Gem::Specification.new do |spec|
|
|
136
165
|
A generic command line interface for ruby-debug.
|
137
166
|
EOF
|
138
167
|
|
139
|
-
spec.version =
|
168
|
+
spec.version = ruby_debug_version
|
140
169
|
|
141
170
|
spec.author = "Kent Sibilev"
|
142
171
|
spec.email = "ksibilev@yahoo.com"
|
@@ -150,7 +179,7 @@ EOF
|
|
150
179
|
spec.date = Time.now
|
151
180
|
spec.rubyforge_project = 'ruby-debug'
|
152
181
|
spec.add_dependency('columnize', '>= 0.1')
|
153
|
-
spec.add_dependency('ruby-debug-base', "~> #{
|
182
|
+
spec.add_dependency('ruby-debug-base', "~> #{ruby_debug_version}.0")
|
154
183
|
|
155
184
|
# FIXME: work out operational logistics for this
|
156
185
|
# spec.test_files = FileList[CLI_TEST_FILE_LIST]
|
@@ -228,6 +257,7 @@ Rake::RDocTask.new("rdoc") do |rdoc|
|
|
228
257
|
rdoc.options << '--main' << 'README'
|
229
258
|
rdoc.rdoc_files.include('bin/**/*',
|
230
259
|
'cli/ruby-debug/commands/*.rb',
|
260
|
+
'cli/ruby-debug/*.rb',
|
231
261
|
'lib/**/*.rb',
|
232
262
|
'ext/**/ruby_debug.c',
|
233
263
|
'README',
|
@@ -253,3 +283,29 @@ task :rubyforge_upload do
|
|
253
283
|
system(release_command)
|
254
284
|
end
|
255
285
|
end
|
286
|
+
|
287
|
+
def install(spec, *opts)
|
288
|
+
args = ['gem', 'install', "pkg/#{spec.name}-#{spec.version}.gem"] + opts
|
289
|
+
args.unshift 'sudo' unless 0 == Process.uid
|
290
|
+
system(*args)
|
291
|
+
end
|
292
|
+
|
293
|
+
desc 'Install locally'
|
294
|
+
task :install => :package do
|
295
|
+
Dir.chdir(File::dirname(__FILE__)) do
|
296
|
+
# ri and rdoc take lots of time
|
297
|
+
install(base_spec, '--no-ri', '--no-rdoc')
|
298
|
+
install(cli_spec, '--no-ri', '--no-rdoc')
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
task :install_full => :package do
|
303
|
+
Dir.chdir(File::dirname(__FILE__)) do
|
304
|
+
install(base_spec)
|
305
|
+
install(cli_spec)
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
task :make_version_file do
|
310
|
+
make_version_file
|
311
|
+
end
|
data/VERSION
ADDED
data/ext/breakpoint.c
CHANGED
@@ -68,7 +68,7 @@ check_breakpoint_by_pos(VALUE breakpoint, char *file, int line)
|
|
68
68
|
}
|
69
69
|
|
70
70
|
int
|
71
|
-
check_breakpoint_by_method(VALUE breakpoint, VALUE klass, ID mid)
|
71
|
+
check_breakpoint_by_method(VALUE breakpoint, VALUE klass, ID mid, VALUE self)
|
72
72
|
{
|
73
73
|
debug_breakpoint_t *debug_breakpoint;
|
74
74
|
|
@@ -82,6 +82,9 @@ check_breakpoint_by_method(VALUE breakpoint, VALUE klass, ID mid)
|
|
82
82
|
return 0;
|
83
83
|
if(classname_cmp(debug_breakpoint->source, klass))
|
84
84
|
return 1;
|
85
|
+
if ((rb_type(self) == T_CLASS) &&
|
86
|
+
classname_cmp(debug_breakpoint->source, self))
|
87
|
+
return 1;
|
85
88
|
return 0;
|
86
89
|
}
|
87
90
|
|
@@ -109,7 +112,7 @@ check_breakpoints_by_pos(debug_context_t *debug_context, char *file, int line)
|
|
109
112
|
}
|
110
113
|
|
111
114
|
VALUE
|
112
|
-
check_breakpoints_by_method(debug_context_t *debug_context, VALUE klass, ID mid)
|
115
|
+
check_breakpoints_by_method(debug_context_t *debug_context, VALUE klass, ID mid, VALUE self)
|
113
116
|
{
|
114
117
|
VALUE breakpoint;
|
115
118
|
int i;
|
@@ -117,7 +120,7 @@ check_breakpoints_by_method(debug_context_t *debug_context, VALUE klass, ID mid)
|
|
117
120
|
if(!CTX_FL_TEST(debug_context, CTX_FL_ENABLE_BKPT))
|
118
121
|
return Qnil;
|
119
122
|
|
120
|
-
if(check_breakpoint_by_method(debug_context->breakpoint, klass, mid))
|
123
|
+
if(check_breakpoint_by_method(debug_context->breakpoint, klass, mid, self))
|
121
124
|
return debug_context->breakpoint;
|
122
125
|
|
123
126
|
if(RARRAY(rdebug_breakpoints)->len == 0)
|
@@ -125,7 +128,7 @@ check_breakpoints_by_method(debug_context_t *debug_context, VALUE klass, ID mid)
|
|
125
128
|
for(i = 0; i < RARRAY(rdebug_breakpoints)->len; i++)
|
126
129
|
{
|
127
130
|
breakpoint = rb_ary_entry(rdebug_breakpoints, i);
|
128
|
-
if(check_breakpoint_by_method(breakpoint, klass, mid))
|
131
|
+
if(check_breakpoint_by_method(breakpoint, klass, mid, self))
|
129
132
|
return breakpoint;
|
130
133
|
}
|
131
134
|
return Qnil;
|
@@ -253,7 +256,7 @@ rdebug_add_catchpoint(VALUE self, VALUE value)
|
|
253
256
|
|
254
257
|
/*
|
255
258
|
* call-seq:
|
256
|
-
* context.breakpoint ->
|
259
|
+
* context.breakpoint -> Breakpoint
|
257
260
|
*
|
258
261
|
* Returns a context-specific temporary Breakpoint object.
|
259
262
|
*/
|
data/ext/ruby_debug.c
CHANGED
@@ -6,8 +6,7 @@
|
|
6
6
|
#include <st.h>
|
7
7
|
#include <intern.h>
|
8
8
|
|
9
|
-
#define DEBUG_VERSION "0.10.
|
10
|
-
|
9
|
+
#define DEBUG_VERSION "0.10.4"
|
11
10
|
|
12
11
|
#ifdef _WIN32
|
13
12
|
struct FRAME {
|
@@ -480,7 +479,7 @@ save_call_frame(rb_event_t event, VALUE self, char *file, int line, ID mid, debu
|
|
480
479
|
if(frame_n >= debug_context->stack_len)
|
481
480
|
{
|
482
481
|
debug_context->stack_len += STACK_SIZE_INCREMENT;
|
483
|
-
|
482
|
+
REALLOC_N(debug_context->frames, debug_frame_t, debug_context->stack_len);
|
484
483
|
}
|
485
484
|
debug_frame = &debug_context->frames[frame_n];
|
486
485
|
debug_frame->argc = ruby_frame->argc;
|
@@ -534,8 +533,9 @@ filename_cmp(VALUE source, char *file)
|
|
534
533
|
}
|
535
534
|
|
536
535
|
/*
|
537
|
-
*
|
538
|
-
* static in eval.c. So
|
536
|
+
* A nasty hack to be able to get at the +Kernel.binding+ method.
|
537
|
+
* +rb_f_binding+ is declared static in eval.c. So copy and save our own value
|
538
|
+
* of it by looking up the method name in the Kernel module.
|
539
539
|
*/
|
540
540
|
static VALUE
|
541
541
|
create_binding(VALUE self)
|
@@ -806,7 +806,7 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
|
|
806
806
|
case RUBY_EVENT_CALL:
|
807
807
|
{
|
808
808
|
save_call_frame(event, self, file, line, mid, debug_context);
|
809
|
-
breakpoint = check_breakpoints_by_method(debug_context, klass, mid);
|
809
|
+
breakpoint = check_breakpoints_by_method(debug_context, klass, mid, self);
|
810
810
|
if(breakpoint != Qnil)
|
811
811
|
{
|
812
812
|
debug_frame_t *debug_frame;
|
@@ -924,8 +924,13 @@ debug_event_hook(rb_event_t event, NODE *node, VALUE self, ID mid, VALUE klass)
|
|
924
924
|
hit_count = rb_hash_aref(rdebug_catchpoints, mod_name);
|
925
925
|
if(hit_count != Qnil)
|
926
926
|
{
|
927
|
-
|
928
|
-
|
927
|
+
/* On 64-bit systems with gcc and -O2 there seems to be
|
928
|
+
an optimization bug in running INT2FIX(FIX2INT...)..)
|
929
|
+
So we do this in two steps.
|
930
|
+
*/
|
931
|
+
int c_hit_count = FIX2INT(rb_hash_aref(rdebug_catchpoints,
|
932
|
+
mod_name)) + 1;
|
933
|
+
hit_count = INT2FIX(c_hit_count);
|
929
934
|
rb_hash_aset(rdebug_catchpoints, mod_name, hit_count);
|
930
935
|
debug_context->stop_reason = CTX_STOP_CATCHPOINT;
|
931
936
|
rb_funcall(context, idAtCatchpoint, 1, ruby_errinfo);
|
@@ -2168,9 +2173,10 @@ context_stop_reason(VALUE self)
|
|
2168
2173
|
/*
|
2169
2174
|
* Document-class: Context
|
2170
2175
|
*
|
2171
|
-
*
|
2172
|
-
*
|
2173
|
-
*
|
2176
|
+
* The Debugger module keeps a single instance of this class for
|
2177
|
+
* each Ruby thread. It contains a call-stack information, thread
|
2178
|
+
* information, breakpoint information and the reason the program is
|
2179
|
+
* stopped.
|
2174
2180
|
*/
|
2175
2181
|
static void
|
2176
2182
|
Init_context()
|
@@ -2209,9 +2215,10 @@ Init_context()
|
|
2209
2215
|
|
2210
2216
|
/*
|
2211
2217
|
* call-seq:
|
2212
|
-
* Debugger.breakpoints ->
|
2218
|
+
* Debugger.breakpoints -> Array
|
2213
2219
|
*
|
2214
|
-
* Returns an
|
2220
|
+
* Returns an Array of Breakpoint objects; all the breakpoints that
|
2221
|
+
* have been created.
|
2215
2222
|
*/
|
2216
2223
|
static VALUE
|
2217
2224
|
debug_breakpoints(VALUE self)
|
@@ -2246,10 +2253,7 @@ debug_add_breakpoint(int argc, VALUE *argv, VALUE self)
|
|
2246
2253
|
/*
|
2247
2254
|
* Document-class: Debugger
|
2248
2255
|
*
|
2249
|
-
*
|
2250
|
-
*
|
2251
|
-
* This is a singleton class allows controlling the debugger. Use it to start/stop debugger,
|
2252
|
-
* set/remove breakpoints, etc.
|
2256
|
+
* _Debugger_ is the module name space for ruby-debug.
|
2253
2257
|
*/
|
2254
2258
|
#if defined(_WIN32)
|
2255
2259
|
__declspec(dllexport)
|
data/ext/ruby_debug.h
CHANGED
@@ -110,7 +110,7 @@ typedef struct {
|
|
110
110
|
extern int check_breakpoint_expression(VALUE breakpoint, VALUE binding);
|
111
111
|
extern int check_breakpoint_hit_condition(VALUE breakpoint);
|
112
112
|
extern VALUE check_breakpoints_by_method(debug_context_t *debug_context,
|
113
|
-
VALUE klass, ID mid);
|
113
|
+
VALUE klass, ID mid, VALUE self);
|
114
114
|
extern VALUE check_breakpoints_by_pos(debug_context_t *debug_context,
|
115
115
|
char *file, int line);
|
116
116
|
extern VALUE create_breakpoint_from_args(int argc, VALUE *argv, int id);
|
data/ext/win32/Makefile
CHANGED
@@ -7,32 +7,35 @@ srcdir = ..
|
|
7
7
|
topdir = /usr/local/ruby-mingw32/lib/ruby/1.8/i386-mingw32
|
8
8
|
hdrdir = $(topdir)
|
9
9
|
VPATH = $(srcdir):$(topdir):$(hdrdir)
|
10
|
-
prefix = $(DESTDIR)/usr/local/ruby-mingw32
|
11
10
|
exec_prefix = $(prefix)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dvidir = $(docdir)
|
16
|
-
datarootdir = $(prefix)/share
|
17
|
-
archdir = $(rubylibdir)/$(arch)
|
18
|
-
sbindir = $(exec_prefix)/sbin
|
11
|
+
prefix = $(DESTDIR)/usr/local/ruby-mingw32
|
12
|
+
sharedstatedir = $(prefix)/com
|
13
|
+
mandir = $(datarootdir)/man
|
19
14
|
psdir = $(docdir)
|
15
|
+
oldincludedir = $(DESTDIR)/usr/include
|
20
16
|
localedir = $(datarootdir)/locale
|
17
|
+
bindir = $(exec_prefix)/bin
|
18
|
+
libexecdir = $(exec_prefix)/libexec
|
19
|
+
sitedir = $(libdir)/ruby/site_ruby
|
21
20
|
htmldir = $(docdir)
|
22
|
-
|
21
|
+
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
23
22
|
includedir = $(prefix)/include
|
24
23
|
infodir = $(datarootdir)/info
|
24
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
25
25
|
sysconfdir = $(prefix)/etc
|
26
|
-
mandir = $(datarootdir)/man
|
27
26
|
libdir = $(exec_prefix)/lib
|
28
|
-
|
29
|
-
|
27
|
+
sbindir = $(exec_prefix)/sbin
|
28
|
+
rubylibdir = $(libdir)/ruby/$(ruby_version)
|
29
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
30
|
+
dvidir = $(docdir)
|
31
|
+
vendordir = $(libdir)/ruby/vendor_ruby
|
32
|
+
datarootdir = $(prefix)/share
|
30
33
|
pdfdir = $(docdir)
|
34
|
+
archdir = $(rubylibdir)/$(arch)
|
31
35
|
sitearchdir = $(sitelibdir)/$(sitearch)
|
32
|
-
|
36
|
+
datadir = $(datarootdir)
|
33
37
|
localstatedir = $(prefix)/var
|
34
38
|
sitelibdir = $(sitedir)/$(ruby_version)
|
35
|
-
libexecdir = $(exec_prefix)/libexec
|
36
39
|
|
37
40
|
CC = i586-mingw32msvc-gcc
|
38
41
|
LIBRUBY = lib$(LIBRUBY_SO).a
|
@@ -41,11 +44,15 @@ LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
|
41
44
|
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
42
45
|
|
43
46
|
RUBY_EXTCONF_H =
|
44
|
-
CFLAGS = -g -O2
|
47
|
+
CFLAGS = -g -O2 $(cflags)
|
45
48
|
INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir)
|
46
|
-
|
49
|
+
DEFS =
|
50
|
+
CPPFLAGS = $(DEFS) $(cppflags)
|
47
51
|
CXXFLAGS = $(CFLAGS)
|
48
|
-
|
52
|
+
ldflags = -L.
|
53
|
+
dldflags = -Wl,--enable-auto-image-base,--enable-auto-import,--export-all
|
54
|
+
archflag =
|
55
|
+
DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
|
49
56
|
LDSHARED = i586-mingw32msvc-gcc -shared -s
|
50
57
|
AR = i586-mingw32msvc-ar
|
51
58
|
EXEEXT = .exe
|
@@ -69,17 +76,17 @@ COPY = cp
|
|
69
76
|
preload =
|
70
77
|
|
71
78
|
libpath = . $(libdir)
|
72
|
-
LIBPATH = -L
|
79
|
+
LIBPATH = -L. -L$(libdir)
|
73
80
|
DEFFILE =
|
74
81
|
|
75
|
-
CLEANFILES =
|
82
|
+
CLEANFILES = mkmf.log
|
76
83
|
DISTCLEANFILES =
|
77
84
|
|
78
85
|
extout =
|
79
86
|
extout_prefix =
|
80
87
|
target_prefix =
|
81
88
|
LOCAL_LIBS =
|
82
|
-
LIBS = $(LIBRUBYARG_SHARED) -lwsock32
|
89
|
+
LIBS = $(LIBRUBYARG_SHARED) -lshell32 -lwsock32
|
83
90
|
SRCS = ruby_debug.c breakpoint.c
|
84
91
|
OBJS = ruby_debug.o breakpoint.o
|
85
92
|
TARGET = ruby_debug
|
@@ -87,6 +94,7 @@ DLLIB = $(TARGET).so
|
|
87
94
|
EXTSTATIC =
|
88
95
|
STATIC_LIB =
|
89
96
|
|
97
|
+
BINDIR = $(bindir)
|
90
98
|
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
91
99
|
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
92
100
|
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
@@ -140,7 +148,7 @@ site-install-rb: install-rb
|
|
140
148
|
.c.o:
|
141
149
|
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
|
142
150
|
|
143
|
-
$(DLLIB): $(OBJS)
|
151
|
+
$(DLLIB): $(OBJS) Makefile
|
144
152
|
@-$(RM) $@
|
145
153
|
$(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
146
154
|
|
data/ext/win32/breakpoint.o
CHANGED
Binary file
|
data/ext/win32/ruby_debug.o
CHANGED
Binary file
|
data/ext/win32/ruby_debug.so
CHANGED
Binary file
|
data/lib/ChangeLog
CHANGED
@@ -1,3 +1,119 @@
|
|
1
|
+
2010-10-15 14:45 Rocky Bernstein
|
2
|
+
|
3
|
+
* ChangeLog, ruby-debug-base.rb: Go over documentation (1st pass)
|
4
|
+
including that created by rdoc.
|
5
|
+
Better instructions for how to build on MS Windows and the
|
6
|
+
include
|
7
|
+
cross-compile.sh script I use.
|
8
|
+
Update rubyforge URL's used to building ChangeLogs.
|
9
|
+
|
10
|
+
2010-10-14 01:41 Rocky Bernstein
|
11
|
+
|
12
|
+
* ChangeLog: improve list and list - (backwards) handling when
|
13
|
+
hitting end of file.
|
14
|
+
|
15
|
+
2010-09-20 11:06 Rocky Bernstein
|
16
|
+
|
17
|
+
* ChangeLog: "rake test" of ruby-debug gem should now work without
|
18
|
+
requiring or using ruby-debug-base code. Rubyforge tracker
|
19
|
+
#28560.
|
20
|
+
|
21
|
+
2010-09-20 09:33 Rocky Bernstein
|
22
|
+
|
23
|
+
* ChangeLog: Make sure version file is closed. Thanks to Mamoru
|
24
|
+
Tasaka. Tracker #28581.
|
25
|
+
|
26
|
+
2010-09-15 16:58 Rocky Bernstein
|
27
|
+
|
28
|
+
* ChangeLog: Rakefile: make rake --prereqs work if only
|
29
|
+
ruby-debug.tar.gz is used. Add
|
30
|
+
test/config.yml to gem. See tracker #28560.
|
31
|
+
ruby_debug.c: 10.0.4.rc2 now
|
32
|
+
|
33
|
+
2010-09-12 01:30 Rocky Bernstein
|
34
|
+
|
35
|
+
* ChangeLog: pm.rb: spelling mistake
|
36
|
+
|
37
|
+
2010-08-13 05:32 Rocky Bernstein
|
38
|
+
|
39
|
+
* ChangeLog: Add Debugger.inside_emacs? Environment variable EMACS
|
40
|
+
for inside Emacs is deprecated in favor of INSIDE_EMACS.
|
41
|
+
Rubyforge #28465.
|
42
|
+
|
43
|
+
2010-08-02 12:51 Rocky Bernstein
|
44
|
+
|
45
|
+
* ChangeLog: Go over installation instructions for Emacs.
|
46
|
+
Add a basic files, README, INSTALL and AUTHORS.
|
47
|
+
Change version from 0.10.4vc to 0.10.4rc1
|
48
|
+
|
49
|
+
2010-05-06 21:59 Rocky Bernstein
|
50
|
+
|
51
|
+
* ChangeLog: More explicit about incomplete saved frames. Now
|
52
|
+
reads:
|
53
|
+
Warning: saved frames may be incomplete;
|
54
|
+
compare debugger backtrace (bt) with Ruby caller(0).
|
55
|
+
|
56
|
+
2010-04-18 07:18 Rocky Bernstein
|
57
|
+
|
58
|
+
* ruby-debug-base.rb: Fix bug in "reload" command. tracker #26130
|
59
|
+
|
60
|
+
2010-03-21 23:09 Rocky Bernstein
|
61
|
+
|
62
|
+
* ChangeLog: Add ability to start remote debugging on random ports
|
63
|
+
and to query those ports. Tracker #27889 from Hongli Lai.
|
64
|
+
|
65
|
+
2010-03-16 04:23 Rocky Bernstein
|
66
|
+
|
67
|
+
* ChangeLog: Fix for what looks like an optimization bug on 64-bit
|
68
|
+
gcc systems with optimization. The Symptom is that debugger
|
69
|
+
"catch" causes the program to immediately terminate when the Ruby
|
70
|
+
exception is raised. Possibly a problem in using
|
71
|
+
INT2FIX(FIX2INT...)..) and/or possibly a bug in those macros.
|
72
|
+
|
73
|
+
2010-03-12 20:27 Rocky Bernstein
|
74
|
+
|
75
|
+
* ChangeLog: irb.rb: Goodness backported from rbdbgr. Add IRB 'q'
|
76
|
+
for quit and ability to
|
77
|
+
run debugger commands from inside irb via dbgr, e.g. >> dbgr
|
78
|
+
'where'
|
79
|
+
|
80
|
+
kill.rb: remove spurious debug output
|
81
|
+
|
82
|
+
Rakefile: add install targets (backport from rbdbgr)
|
83
|
+
|
84
|
+
2009-11-28 22:56 Rocky Bernstein
|
85
|
+
|
86
|
+
* ChangeLog: Fix problem caused by gdb-ui renamed to gdb-mi.
|
87
|
+
Rubyforge tracker #27152
|
88
|
+
Remove all Emacs byte compile warning messages.
|
89
|
+
|
90
|
+
Note however all of this code will eventually be phased out in
|
91
|
+
favor
|
92
|
+
of emacs-dbgr (on github).
|
93
|
+
|
94
|
+
2009-04-04 14:11 Rocky Bernstein
|
95
|
+
|
96
|
+
* ChangeLog: Make test-save less installation-specific
|
97
|
+
|
98
|
+
2009-03-29 03:00 Rocky Bernstein
|
99
|
+
|
100
|
+
* ChangeLog: Canonicalize breakpoint locations a little better.
|
101
|
+
More work should be done and more work should be done on the
|
102
|
+
testing side too.
|
103
|
+
|
104
|
+
2009-03-11 23:42 Rocky Bernstein
|
105
|
+
|
106
|
+
* ChangeLog: update texinfo for catch
|
107
|
+
|
108
|
+
2008-11-25 02:43 Rocky Bernstein
|
109
|
+
|
110
|
+
* ChangeLog: Frame without a frame number means frame 0, same as
|
111
|
+
gdb. We are now in 0.10.4 territory now.
|
112
|
+
|
113
|
+
2008-11-16 00:14 Rocky Bernstein
|
114
|
+
|
115
|
+
* ChangeLog: Add rdoc for rdebug script.
|
116
|
+
|
1
117
|
2008-11-14 19:28 Rocky Bernstein
|
2
118
|
|
3
119
|
* ruby-debug-base.rb: Go over documentation and revise.
|
@@ -759,248 +875,248 @@
|
|
759
875
|
|
760
876
|
2007-03-24 18:17 Kent Sibilev
|
761
877
|
|
762
|
-
*
|
878
|
+
* stable becomes the trunk
|
763
879
|
|
764
880
|
2007-03-13 17:06 Kent Sibilev
|
765
881
|
|
766
|
-
*
|
882
|
+
* fixed rdoc
|
767
883
|
|
768
884
|
2007-03-01 23:44 Kent Sibilev
|
769
885
|
|
770
|
-
*
|
886
|
+
* fixed post-mortem
|
771
887
|
|
772
888
|
2007-02-27 08:02 Kent Sibilev
|
773
889
|
|
774
|
-
*
|
890
|
+
* repackaging ruby-debug
|
775
891
|
|
776
892
|
2007-02-23 20:56 Kent Sibilev
|
777
893
|
|
778
|
-
*
|
779
|
-
|
894
|
+
* added an option for Debugger.debug_load to stop at the first line
|
895
|
+
of code
|
780
896
|
|
781
897
|
2007-02-12 06:59 Kent Sibilev
|
782
898
|
|
783
|
-
*
|
899
|
+
* added --emacs option
|
784
900
|
|
785
901
|
2007-02-09 16:56 Kent Sibilev
|
786
902
|
|
787
|
-
*
|
903
|
+
* in remote mode the debugger shouldn't stop inside of rdebug
|
788
904
|
script
|
789
905
|
|
790
906
|
2007-02-09 06:20 Kent Sibilev
|
791
907
|
|
792
|
-
*
|
908
|
+
* --
|
793
909
|
|
794
910
|
2007-02-09 01:00 Kent Sibilev
|
795
911
|
|
796
|
-
*
|
912
|
+
* fixed code reloading
|
797
913
|
made 'reload on' as a part of the 'set' command
|
798
914
|
evaluate ~/.rdebugrc as an init script
|
799
915
|
|
800
916
|
2007-02-07 02:42 Kent Sibilev
|
801
917
|
|
802
|
-
*
|
918
|
+
* should use ignored? method to check for the debugger's thread
|
803
919
|
|
804
920
|
2007-02-06 22:21 Kent Sibilev
|
805
921
|
|
806
|
-
*
|
922
|
+
*
|
807
923
|
|
808
924
|
2007-02-05 22:48 Kent Sibilev
|
809
925
|
|
810
|
-
*
|
926
|
+
* --
|
811
927
|
|
812
928
|
2007-02-05 22:11 Kent Sibilev
|
813
929
|
|
814
|
-
*
|
930
|
+
* fixed emacs integration
|
815
931
|
|
816
932
|
2007-02-05 20:16 Kent Sibilev
|
817
933
|
|
818
|
-
*
|
934
|
+
* fixed another issue where a bogus frame is being left in the
|
819
935
|
stack
|
820
936
|
|
821
937
|
2007-02-04 23:36 Kent Sibilev
|
822
938
|
|
823
|
-
*
|
939
|
+
* seg fault bugfixes
|
824
940
|
fixed suspend/resume
|
825
941
|
|
826
942
|
2007-02-04 03:49 Kent Sibilev
|
827
943
|
|
828
|
-
*
|
944
|
+
* A better fix for the segmentation fault
|
829
945
|
|
830
946
|
2007-02-03 20:24 Kent Sibilev
|
831
947
|
|
832
|
-
*
|
948
|
+
* fix seg fault by avoiding ruby's bug
|
833
949
|
fixed Context#resume
|
834
950
|
when handling post-mortem all threads must be suspended
|
835
951
|
|
836
952
|
2007-02-02 18:47 Kent Sibilev
|
837
953
|
|
838
|
-
*
|
954
|
+
* removed ambiguity with down command
|
839
955
|
|
840
956
|
2007-02-01 23:48 Kent Sibilev
|
841
957
|
|
842
|
-
*
|
958
|
+
* typo
|
843
959
|
|
844
960
|
2007-02-01 22:15 Kent Sibilev
|
845
961
|
|
846
|
-
*
|
962
|
+
* made eval command available from the control thread
|
847
963
|
|
848
964
|
2007-02-01 07:22 Kent Sibilev
|
849
965
|
|
850
|
-
*
|
966
|
+
* added setting command
|
851
967
|
added Context#suspended? method
|
852
968
|
dispay suspended status in the thread list
|
853
969
|
display frame starting from zero
|
854
970
|
|
855
971
|
2007-01-31 21:13 Kent Sibilev
|
856
972
|
|
857
|
-
*
|
973
|
+
* ditto
|
858
974
|
|
859
975
|
2007-01-31 21:12 Kent Sibilev
|
860
976
|
|
861
|
-
*
|
977
|
+
* fixed help command
|
862
978
|
|
863
979
|
2007-01-31 19:39 Kent Sibilev
|
864
980
|
|
865
|
-
*
|
981
|
+
* fixed frame count
|
866
982
|
added frame_self method to context
|
867
983
|
|
868
984
|
2007-01-31 16:48 Kent Sibilev
|
869
985
|
|
870
|
-
*
|
986
|
+
* removed all references to frames array
|
871
987
|
fixed post-mortem debugging
|
872
988
|
|
873
989
|
2007-01-31 00:51 Kent Sibilev
|
874
990
|
|
875
|
-
*
|
991
|
+
* removed obsolete frames usage
|
876
992
|
|
877
993
|
2007-01-31 00:41 Kent Sibilev
|
878
994
|
|
879
|
-
*
|
995
|
+
* refactored out frame class and preallocate stack
|
880
996
|
made local variable available even when bindings are not
|
881
997
|
collected.
|
882
998
|
|
883
999
|
2007-01-28 20:25 Kent Sibilev
|
884
1000
|
|
885
|
-
*
|
1001
|
+
* --
|
886
1002
|
|
887
1003
|
2007-01-28 06:22 Kent Sibilev
|
888
1004
|
|
889
|
-
*
|
1005
|
+
* - Control thread is always started by rdebug script.
|
890
1006
|
- Ability to specify negative frame number to frame commands.
|
891
1007
|
Patch from R. Bernstein.
|
892
1008
|
|
893
1009
|
2007-01-28 04:52 Kent Sibilev
|
894
1010
|
|
895
|
-
*
|
1011
|
+
* added top frame caching
|
896
1012
|
control thread is always started by rdebug script
|
897
1013
|
|
898
1014
|
2007-01-27 01:43 Kent Sibilev
|
899
1015
|
|
900
|
-
*
|
1016
|
+
* another performance optimization
|
901
1017
|
|
902
1018
|
2007-01-26 20:28 Kent Sibilev
|
903
1019
|
|
904
|
-
*
|
1020
|
+
* fixed #7484
|
905
1021
|
|
906
1022
|
2007-01-26 17:59 Kent Sibilev
|
907
1023
|
|
908
|
-
*
|
1024
|
+
* revisited file name comparing procedure
|
909
1025
|
|
910
1026
|
2007-01-26 09:03 Kent Sibilev
|
911
1027
|
|
912
|
-
*
|
1028
|
+
* performance improvements
|
913
1029
|
|
914
1030
|
2007-01-26 03:12 Kent Sibilev
|
915
1031
|
|
916
|
-
*
|
1032
|
+
* added option to exclude collecting of frame bindings
|
917
1033
|
|
918
1034
|
2007-01-24 18:33 Kent Sibilev
|
919
1035
|
|
920
|
-
*
|
1036
|
+
* disable tracing when in post-mortem
|
921
1037
|
added -x/--trace option to rdebug script
|
922
1038
|
|
923
1039
|
2007-01-21 08:13 Kent Sibilev
|
924
1040
|
|
925
|
-
*
|
1041
|
+
*
|
926
1042
|
|
927
1043
|
2007-01-21 03:34 Kent Sibilev
|
928
1044
|
|
929
|
-
*
|
1045
|
+
* assign an id to the breakpoint
|
930
1046
|
|
931
1047
|
2007-01-21 01:20 Kent Sibilev
|
932
1048
|
|
933
|
-
*
|
1049
|
+
* added post_mortem_method wrap method
|
934
1050
|
|
935
1051
|
2006-12-21 20:16 Kent Sibilev
|
936
1052
|
|
937
|
-
*
|
1053
|
+
* added 'restart' command
|
938
1054
|
|
939
1055
|
2006-12-21 14:12 Kent Sibilev
|
940
1056
|
|
941
|
-
*
|
1057
|
+
* made 'exit' an alias to 'quit'
|
942
1058
|
fixed the interoperability problem with rspec
|
943
1059
|
|
944
1060
|
2006-12-21 13:43 Kent Sibilev
|
945
1061
|
|
946
|
-
*
|
1062
|
+
* fixed trace command in post-mortem mode
|
947
1063
|
|
948
1064
|
2006-12-21 01:59 Kent Sibilev
|
949
1065
|
|
950
|
-
*
|
1066
|
+
* initialize only once
|
951
1067
|
|
952
1068
|
2006-12-21 01:08 Kent Sibilev
|
953
1069
|
|
954
|
-
*
|
1070
|
+
* fixes irb help command
|
955
1071
|
|
956
1072
|
2006-12-20 21:19 Kent Sibilev
|
957
1073
|
|
958
|
-
*
|
1074
|
+
* check that debugger has been started
|
959
1075
|
|
960
1076
|
2006-12-20 20:08 Kent Sibilev
|
961
1077
|
|
962
|
-
*
|
1078
|
+
* added post-mortem option to rdebug
|
963
1079
|
|
964
1080
|
2006-12-20 19:38 Kent Sibilev
|
965
1081
|
|
966
|
-
*
|
1082
|
+
* initial support for post-mortem debugging
|
967
1083
|
|
968
1084
|
2006-12-19 06:13 Kent Sibilev
|
969
1085
|
|
970
|
-
*
|
1086
|
+
* removed 'run' alias
|
971
1087
|
|
972
1088
|
2006-12-18 08:34 Kent Sibilev
|
973
1089
|
|
974
|
-
*
|
1090
|
+
* added irb command
|
975
1091
|
fixed source_for method
|
976
1092
|
|
977
1093
|
2006-12-02 19:15 Kent Sibilev
|
978
1094
|
|
979
|
-
*
|
1095
|
+
* added reload command
|
980
1096
|
|
981
1097
|
2006-12-02 18:32 Kent Sibilev
|
982
1098
|
|
983
|
-
*
|
1099
|
+
* fixed #6518 and #6545
|
984
1100
|
|
985
1101
|
2006-12-01 06:47 Kent Sibilev
|
986
1102
|
|
987
|
-
*
|
1103
|
+
*
|
988
1104
|
|
989
1105
|
2006-11-21 23:29 Kent Sibilev
|
990
1106
|
|
991
|
-
*
|
1107
|
+
* ensure that on/off is the last on the line
|
992
1108
|
|
993
1109
|
2006-11-16 00:04 Kent Sibilev
|
994
1110
|
|
995
|
-
*
|
1111
|
+
* fixed debug_method for assignment methods
|
996
1112
|
|
997
1113
|
2006-11-16 00:01 Kent Sibilev
|
998
1114
|
|
999
|
-
*
|
1115
|
+
* added the new branch for the stable version
|
1000
1116
|
|
1001
1117
|
2006-10-15 22:43 Kent Sibilev
|
1002
1118
|
|
1003
|
-
*
|
1119
|
+
* branching a stable version
|
1004
1120
|
|
1005
1121
|
2006-10-15 22:26 Kent Sibilev
|
1006
1122
|
|
data/lib/ruby-debug-base.rb
CHANGED
@@ -90,7 +90,7 @@ module Debugger
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def source_reload
|
93
|
-
LineCache::clear_file_cache
|
93
|
+
LineCache::clear_file_cache
|
94
94
|
end
|
95
95
|
|
96
96
|
# Get line +line_number+ from file named +filename+. Return "\n"
|
@@ -218,8 +218,9 @@ end
|
|
218
218
|
|
219
219
|
module Kernel
|
220
220
|
|
221
|
-
# Enters the debugger in the current thread after _steps_ line
|
222
|
-
# Before entering the debugger
|
221
|
+
# Enters the debugger in the current thread after _steps_ line
|
222
|
+
# events occur. Before entering the debugger, a user-defined
|
223
|
+
# startup script is may be read.
|
223
224
|
#
|
224
225
|
# Setting _steps_ to 0 will cause a break in the debugger subroutine
|
225
226
|
# and not wait for a line event to occur. You will have to go "up 1"
|
@@ -227,10 +228,12 @@ module Kernel
|
|
227
228
|
# debugger. Settings _steps_ to 0 could be useful you want to stop
|
228
229
|
# right after the last statement in some scope, because the next
|
229
230
|
# step will take you out of some scope.
|
230
|
-
|
231
|
-
# If
|
232
|
-
# block under the debugger.
|
233
|
-
#
|
231
|
+
#
|
232
|
+
# If block _block_ is given (and the debugger hasn't been started,
|
233
|
+
# we run the block under the debugger.
|
234
|
+
#
|
235
|
+
# FIXME: Alas, when a block is given, we can't support running the
|
236
|
+
# startup script or support the steps option.
|
234
237
|
def debugger(steps = 1, &block)
|
235
238
|
if block
|
236
239
|
Debugger.start({}, &block)
|
data/test/base/base.rb
CHANGED
File without changes
|
data/test/base/binding.rb
CHANGED
File without changes
|
data/test/base/catchpoint.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-debug-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kent Sibilev
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-10-27 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: linecache
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -21,7 +22,12 @@ dependencies:
|
|
21
22
|
- !ruby/object:Gem::Version
|
22
23
|
version: "0.3"
|
23
24
|
version:
|
24
|
-
description:
|
25
|
+
description: |
|
26
|
+
ruby-debug is a fast implementation of the standard Ruby debugger debug.rb.
|
27
|
+
It is implemented by utilizing a new Ruby C API hook. The core component
|
28
|
+
provides support that front-ends can build on. It provides breakpoint
|
29
|
+
handling, bindings for stack frames among other things.
|
30
|
+
|
25
31
|
email: ksibilev@yahoo.com
|
26
32
|
executables: []
|
27
33
|
|
@@ -35,22 +41,26 @@ files:
|
|
35
41
|
- CHANGES
|
36
42
|
- LICENSE
|
37
43
|
- README
|
44
|
+
- VERSION
|
38
45
|
- Rakefile
|
39
46
|
- ext/breakpoint.c
|
40
47
|
- ext/extconf.rb
|
41
48
|
- ext/ruby_debug.c
|
42
49
|
- ext/ruby_debug.h
|
43
|
-
- ext/win32/Makefile
|
44
|
-
- ext/win32/ruby_debug.o
|
45
50
|
- ext/win32/breakpoint.o
|
51
|
+
- ext/win32/ruby_debug.o
|
46
52
|
- ext/win32/ruby_debug.so
|
47
|
-
-
|
53
|
+
- ext/win32/Makefile
|
48
54
|
- lib/ChangeLog
|
55
|
+
- lib/ruby-debug-base.rb
|
49
56
|
- test/base/base.rb
|
50
57
|
- test/base/binding.rb
|
51
58
|
- test/base/catchpoint.rb
|
59
|
+
- test/base/reload_bug.rb
|
52
60
|
has_rdoc: true
|
53
61
|
homepage: http://rubyforge.org/projects/ruby-debug/
|
62
|
+
licenses: []
|
63
|
+
|
54
64
|
post_install_message:
|
55
65
|
rdoc_options: []
|
56
66
|
|
@@ -71,11 +81,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
81
|
requirements: []
|
72
82
|
|
73
83
|
rubyforge_project: ruby-debug
|
74
|
-
rubygems_version: 1.
|
84
|
+
rubygems_version: 1.3.5
|
75
85
|
signing_key:
|
76
|
-
specification_version:
|
86
|
+
specification_version: 3
|
77
87
|
summary: Fast Ruby debugger - core component
|
78
88
|
test_files:
|
79
89
|
- test/base/base.rb
|
80
90
|
- test/base/binding.rb
|
81
91
|
- test/base/catchpoint.rb
|
92
|
+
- test/base/reload_bug.rb
|