ruby-debug-base 0.10.3 → 0.10.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|