From nobody at rubyforge.org Tue Dec 7 05:27:48 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Tue, 7 Dec 2010 05:27:48 -0500 (EST) Subject: [Ruby-debug-commits] [970] trunk/doc/ruby-debug.texi: Add "installation" section. Message-ID: <20101207102748.C51501858317@rubyforge.org> Revision: 970 Author: rockyb Date: 2010-12-07 05:27:44 -0500 (Tue, 07 Dec 2010) Log Message: ----------- Add "installation" section. "set forcestep" -> "set different". Update example output. Modified Paths: -------------- trunk/doc/ruby-debug.texi Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-07 02:33:13 UTC (rev 969) +++ trunk/doc/ruby-debug.texi 2010-12-07 10:27:44 UTC (rev 970) @@ -11,7 +11,7 @@ @c See the "Inserting Quote Characters" node in the Texinfo manual @set txicodequoteundirected @set txicodequotebacktick - at set RDEBUG_VERSION 0.10.4 + at set RDEBUG_VERSION 0.10.5 @macro Example {} @iftex @@ -88,6 +88,7 @@ @menu * Summary:: Overview of Debugger with sample sessions +* Installation:: Getting this puppy installed * Invocation:: Getting in and out * Debugger Command Reference:: rdebug command reference * Post-Mortem Debugging:: Debugging on an uncaught exception @@ -1009,7 +1010,7 @@ @end smallexample If you want @code{step+} to be the default behavior when stepping, -issue the command @code{set forcestep on}, (@pxref{Forcestep}). I +issue the command @code{set different on}, (@pxref{Different}). I generally put this in my start-up file @code{.rdebugrc}. Similar to the difference between @code{step+} and @code{step} is @@ -1159,6 +1160,49 @@ @end itemize @end ifset + at node Installation + at chapter Installing @code{ruby-debug} + +There are a number of pitfalls that one can run into in trying to +install @code{ruby-debug}. We will try to go over them here. + +In the simplest case, one should be able to run: + + at smallexample + gem install ruby-debug + at end smallexample + +If however you need root permission to install gems (which is @emph{not} +the case if your Ruby is installed via rvm +(@url{http://rvm.beginrescueend.com}), then: + + at smallexample + sudo gem install ruby-debug + at end smallexample + +Ruby debug uses a number of packages, namely: @code{ruby-debug-base}, + at code{columnize}, and @code{linecache}. But those gems should get pulled +in automatically. The gem @code{ruby-debug-base} is a C extension. To +install C extensions you need to make sure you have Ruby's C header +files for compiling extension modules. This includes a file called + at code{ruby.h}. On Debain/Ubuntu the name of Debian package is called + at code{ruby1.8-dev} and is not installed when you just install Ruby 1.8. + +If you are using an IDE or the Ruby you use is JRuby, then instead of +installing @code{ruby-debug}, you want the gem @code{ruby-debug-ide}. + +Mark Moseley ported @code{ruby-debug} and @code{ruby-debug-ide} for Ruby +1.9. Those gems are called @code{ruby-debug19} and + at code{ruby-debug-ide19} respectively. + +I (rocky) have however been rewriting @code{ruby-debug} from scratch to +address a number of failings folks have encountered in + at code{ruby-debug}. Those debuggers are called the ``trepanning'' +debuggers. For Ruby 1.9.2 you need a patched version of Ruby. See + at url{https://github.com/rocky/rb-trepanning/wiki/How-to-Install-rb-trepanning}. For +Rubinius the gem to use is @code{rbx-trepanning}. No patched Ruby is +needed, however you will need a recent version of Rubinius. + @node Invocation @chapter Getting in and out @@ -1203,7 +1247,7 @@ -c, --client Connect to remote debugger --cport PORT Port used for control commands -d, --debug Set $DEBUG=true - --emacs Activates full Emacs support + --emacs LEVEL Activates full Emacs support at annotation level LEVEL --emacs-basic Activates basic Emacs mode -h, --host HOST Host name used for remote debugging -I, --include PATH Add PATH to $LOAD_PATH @@ -1213,6 +1257,7 @@ --no-quit Do not quit when script finishes --no-rewrite-program Do not set $0 to the program being debugged --no-stop Do not stop when script is loaded + -nx Not run debugger initialization files (e.g. .rdebugrc -p, --port PORT Port used for remote debugging -r, --require SCRIPT Require the library, before executing your script --script FILE Name of the script file to run @@ -1708,11 +1753,11 @@ Type 'help ' for help on a specific command Available commands: -backtrace delete enable help next quit show undisplay -break disable eval info p reload source up -catch display exit irb pp restart step var -condition down finish list ps save thread where -continue edit frame method putl set trace +backtrace delete enable help method putl set trace +break disable eval info next quit show undisplay +catch display exit irb p reload source up +condition down finish kill pp restart step var +continue edit frame list ps save thread where @end smallexample @end flushleft @c the above line break eliminates huge line overfull... @@ -2054,9 +2099,11 @@ Run an interactive ruby session (@code{irb}) with the bindings environment set to the state you are in the program. -When you leave irb and go back to the debugger command prompt we show -again the file, line and text position of the program in the same way -as when entered the debugger. If you issue a @command{list} without +Inside irb, method @code{dbgr} is available to run debugger +commands. You give @code{dbgr} a String: the command to run. + +When you leave irb and go back to the debugger, the the file, line and +text position are shown again. If you issue a @command{list} without location information, the default location used is the current line rather than the position may have gotten updated via a prior @command{list} command. @@ -2076,6 +2123,13 @@ @b{irb} >> @b{(0..6).inject@{|sum, i| sum +=i@}} => 21 +>> @b{dbgr 'list'} +[9, 12] in /src/external-vcs/ruby-debug/trunk/doc/triangle.rb + 9 return tri + 10 end + 11 + 12 puts triangle(3) +=> 9 >> @b{exit} triangle.rb:4 def triangle(n) @@ -2091,6 +2145,9 @@ 8 end @end smallexample +If you find yourself wanting to go into irb every time you enter the +debugger, you can do this with the command ``set autolist'' @ref{Autoirb}. + @end table @node PrintVars @@ -2728,9 +2785,9 @@ If you find yourself generally wanting to use @code{step+} rather than @code{step}, you may want to consider using @code{set -forcestep}, (@pxref{Forcestep}). +different}, (@pxref{Different}). -If you have @code{forcestep} set on but want to temporarily disable it +If you have @code{different} set on but want to temporarily disable it for the next step command, append a minus, or @code{step-}. With a count, @code{step} will continue running as normal, but do so @@ -2749,7 +2806,7 @@ appear within the line of code are executed without stopping. As with step, if you want to make sure that on a step you go to a @emph{different} position, add a plus sign (@samp{+}). Similarly, -appending a minus disables a @code{forcestep} temporarily, and an +appending a minus disables a @code{different} temporarily, and an argument @var{count} is a repeat count, as for @code{step}. @end table @@ -2803,9 +2860,9 @@ The various parameters to @code{set} are given below. Each parameter name needs to to be only enough to make it unique. For example - at code{set force} is a suitable abbreviation for @code{set forcestep}. -The letter case is not important, so @code{set FORCE} or @code{set -Force} are also suitable abbreviations. + at code{set diff} is a suitable abbreviation for @code{set different}. +The letter case is not important, so @code{set DIFF} or @code{set +Diff} are also suitable abbreviations. Many @code{set} commands are either ``on'' or ``off'', and you can indicate which way you want set by supplying the corresponding @@ -2824,7 +2881,7 @@ * Autoreload:: Reload source code when changed * Basename:: Report file basename only showing file names * Callstyle:: Show Report file basename only showing file names -* Forcestep:: Make sure 'next/step' commands always move to a new line +* Different:: Make sure 'next/step' commands always move to a new line * Fullpath:: Display full file names in frames * History:: Generic command for showing command history parameters. * Keepframebindings:: Save frame binding on each call @@ -2943,7 +3000,7 @@ @item set forcestep @r{[} short | last | tracked @r{]} @else @kindex set callstyle @r{[} short | last - at item set forcestep @r{[} short | last + at item set callstyle @r{[} short | last @end ifset Sets how you want call parameters displayed; @code{short} shows just @@ -2959,25 +3016,25 @@ saved. For non-scalar values the class is saved. @end table - at node Forcestep - at subsection Set/Show Forces Different Line Step/Next + at node Different + at subsection Set/Show Different Line Forcing on Step/Next @table @code - at kindex set forcestep @r{[} on | 1 | off | 0 @r{]} - at item set forcestep @r{[} on | 1 | off | 0 @r{]} + at kindex set different @r{[} on | 1 | off | 0 @r{]} + at item set different @r{[} on | 1 | off | 0 @r{]} Due to the interpretive, expression-oriented nature of the Ruby Language and implementation, each line often contains many possible stopping points, while in a debugger it is often desired to treat each line as an individual stepping unit. -Setting forcestep on will cause each @code{step} or @code{next} +Setting ``different'' on will cause each @code{step} or @code{next} command to stop at a different line number. See also @ref{Step} and @ref{Next}. - at kindex show forcestep - at item show forcestep -Shows whether forcestep is in effect or not. + at kindex show different + at item show different +Shows whether ``set different'' is in effect or not. @end table @node Fullpath @@ -3456,7 +3513,7 @@ Boolean. True if currently testing the debugger. @item :force_stepping Boolean. True if stepping should go to a line different from the last -step. @xref{Forcestep}. +step. @xref{Different}. @item :full_path Boolean. @xref{Fullpath}. @item :listsize @@ -3651,7 +3708,7 @@ /tmp/testit.rb:7 y=2 (rdb:1) help -ruby-debug help v0.10.3 +ruby-debug help v0.10.5 Type 'help ' for help on a specific command Available commands: backtrace delete enable help method putl set trace @@ -3659,7 +3716,7 @@ catch display exit irb p reload source up condition down finish list pp restart step var continue edit frame me ps save thread where - ^^ This is you + ^^ This is you (rdb:1) help me This does whatever it is I want to do From nobody at rubyforge.org Tue Dec 7 22:37:06 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Tue, 7 Dec 2010 22:37:06 -0500 (EST) Subject: [Ruby-debug-commits] [971] trunk: Order of expect, got reversed in assert_equal Message-ID: <20101208033706.A50741858364@rubyforge.org> Revision: 971 Author: rockyb Date: 2010-12-07 22:37:05 -0500 (Tue, 07 Dec 2010) Log Message: ----------- Order of expect, got reversed in assert_equal Modified Paths: -------------- trunk/ChangeLog trunk/lib/ChangeLog trunk/test/base/binding.rb Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-12-07 10:27:44 UTC (rev 970) +++ trunk/ChangeLog 2010-12-08 03:37:05 UTC (rev 971) @@ -1,3 +1,10 @@ +2010-12-07 02:33 Rocky Bernstein + + * ChangeLog, INSTALL.SVN, Rakefile, ext, ext/extconf.rb, + lib/ChangeLog: Admnistrivia. Rakefile: rake test shouldn't su if + we're rvm. extconf.rb allow for user compile options. INSTALL.SVN + note how to configure compile options. + 2010-11-21 12:57 Rocky Bernstein * CHANGES, ChangeLog, cli/ruby-debug/commands/set.rb, Modified: trunk/lib/ChangeLog =================================================================== --- trunk/lib/ChangeLog 2010-12-07 10:27:44 UTC (rev 970) +++ trunk/lib/ChangeLog 2010-12-08 03:37:05 UTC (rev 971) @@ -1,3 +1,9 @@ +2010-12-07 02:33 Rocky Bernstein + + * ChangeLog: Admnistrivia. Rakefile: rake test shouldn't su if + we're rvm. extconf.rb allow for user compile options. INSTALL.SVN + note how to configure compile options. + 2010-11-09 11:49 Rocky Bernstein * ChangeLog: Monkey patch in a wrapping/chaining way so as to Modified: trunk/test/base/binding.rb =================================================================== --- trunk/test/base/binding.rb 2010-12-07 10:27:44 UTC (rev 970) +++ trunk/test/base/binding.rb 2010-12-08 03:37:05 UTC (rev 971) @@ -24,7 +24,7 @@ Debugger.start b = Kernel::binding_n(0) y = eval('s', b) - assert_equal(y, s) + assert_equal(s, y) inside_fn Debugger.stop end From nobody at rubyforge.org Thu Dec 9 09:45:22 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Thu, 9 Dec 2010 09:45:22 -0500 (EST) Subject: [Ruby-debug-commits] [972] trunk: "info program" gives is a little more descriptive of the program stop events for "catch" and "breakpoint". Message-ID: <20101209144522.C72601858346@rubyforge.org> Revision: 972 Author: rockyb Date: 2010-12-09 09:45:22 -0500 (Thu, 09 Dec 2010) Log Message: ----------- "info program" gives is a little more descriptive of the program stop events for "catch" and "breakpoint". Modified Paths: -------------- trunk/cli/ruby-debug/commands/info.rb trunk/cli/ruby-debug/processor.rb trunk/test/data/breakpoints.right trunk/test/data/catch.cmd trunk/test/data/catch.right Modified: trunk/cli/ruby-debug/commands/info.rb =================================================================== --- trunk/cli/ruby-debug/commands/info.rb 2010-12-08 03:37:05 UTC (rev 971) +++ trunk/cli/ruby-debug/commands/info.rb 2010-12-09 14:45:22 UTC (rev 972) @@ -305,15 +305,16 @@ end print "Program stopped. " + event_arg = @state.processor.event_arg case @state.context.stop_reason when :step print "It stopped after stepping, next'ing or initial start.\n" when :breakpoint - print("It stopped at a breakpoint.\n") + print("It stopped at breakpoint %d.\n", + Debugger.breakpoints.index(event_arg) + 1) when :catchpoint - print("It stopped at a catchpoint.\n") - when :catchpoint - print("It stopped at a catchpoint.\n") + print("It stopped at catchpoint `%s' (%s) .\n", event_arg, + event_arg.class) else print "unknown reason: %s\n" % @state.context.stop_reason.to_s end Modified: trunk/cli/ruby-debug/processor.rb =================================================================== --- trunk/cli/ruby-debug/processor.rb 2010-12-08 03:37:05 UTC (rev 971) +++ trunk/cli/ruby-debug/processor.rb 2010-12-09 14:45:22 UTC (rev 972) @@ -12,6 +12,10 @@ attr_reader :processor attr_reader :commands + # optional argument passed passed in callback. For catchpoints it is + # the catch object. For breakpoints it is the breakpoint object. + attr_reader :event_arg + # Format _msg_ with gdb-style annotation header. def afmt(msg, newline="\n") "\032\032#{msg}#{newline}" @@ -147,6 +151,7 @@ # This is a callback routine when the debugged program hits a # breakpoint event. For example ruby-debug-base calls this. def at_breakpoint(context, breakpoint) + @event_arg = breakpoint aprint 'stopped' if Debugger.annotate.to_i > 2 n = Debugger.breakpoints.index(breakpoint) + 1 file = CommandProcessor.canonic_file(breakpoint.source) @@ -161,6 +166,7 @@ # This is a callback routine when the debugged program hits a # catchpoint. For example ruby-debug-base calls this. def at_catchpoint(context, excpt) + @event_arg = excpt aprint 'stopped' if Debugger.annotate.to_i > 2 file = CommandProcessor.canonic_file(context.frame_file(0)) line = context.frame_line(0) Modified: trunk/test/data/breakpoints.right =================================================================== --- trunk/test/data/breakpoints.right 2010-12-08 03:37:05 UTC (rev 971) +++ trunk/test/data/breakpoints.right 2010-12-09 14:45:22 UTC (rev 972) @@ -40,7 +40,7 @@ --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:10 #1 at line gcd.rb:18 # info program -Program stopped. It stopped at a breakpoint. +Program stopped. It stopped at breakpoint 2. # c 6 Breakpoint 3 at Object:gcd gcd.rb:4 Modified: trunk/test/data/catch.cmd =================================================================== --- trunk/test/data/catch.cmd 2010-12-08 03:37:05 UTC (rev 971) +++ trunk/test/data/catch.cmd 2010-12-09 14:45:22 UTC (rev 972) @@ -14,4 +14,5 @@ catch ZeroDivisionError c where +info program quit Modified: trunk/test/data/catch.right =================================================================== --- trunk/test/data/catch.right 2010-12-08 03:37:05 UTC (rev 971) +++ trunk/test/data/catch.right 2010-12-09 14:45:22 UTC (rev 972) @@ -36,4 +36,6 @@ #1 at line pm.rb:8 Warning: saved frames may be incomplete; compare debugger backtrace (bt) with Ruby caller(0). +# info program +Program stopped. It stopped at catchpoint `divided by 0' (ZeroDivisionError) . # quit From nobody at rubyforge.org Sun Dec 12 15:04:04 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Sun, 12 Dec 2010 15:04:04 -0500 (EST) Subject: [Ruby-debug-commits] [973] branches/ver_0_11_0/: Some major reworking for set different and stopping at calls/returns. Message-ID: <20101212200404.EC4431858378@rubyforge.org> Revision: 973 Author: rockyb Date: 2010-12-12 15:04:04 -0500 (Sun, 12 Dec 2010) Log Message: ----------- Some major reworking for set different and stopping at calls/returns. Added Paths: ----------- branches/ver_0_11_0/ From nobody at rubyforge.org Sun Dec 12 19:12:45 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Sun, 12 Dec 2010 19:12:45 -0500 (EST) Subject: [Ruby-debug-commits] [974] trunk/test/runall: Stop at first failure. Message-ID: <20101213001245.E36931858378@rubyforge.org> Revision: 974 Author: rockyb Date: 2010-12-12 19:12:45 -0500 (Sun, 12 Dec 2010) Log Message: ----------- Stop at first failure. Clean up some of the crud that's accumulated over the years. Modified Paths: -------------- trunk/test/runall Modified: trunk/test/runall =================================================================== --- trunk/test/runall 2010-12-12 20:04:04 UTC (rev 973) +++ trunk/test/runall 2010-12-13 00:12:45 UTC (rev 974) @@ -1,12 +1,37 @@ #!/usr/bin/env ruby -#-*- Ruby -*- -debug_opt = '-d ' if $DEBUG or 'd' == ARGV[0] -for file in Dir.glob("test-*.rb") do +require 'optparse' + +program = File.basename($0) +opt_debug ='' +opt_continue = false +opt_base = false +opts = OptionParser.new do |opts| + opts.on('-d', '--debug', 'Run passing -d') do + opt_debug = '-d ' + end + opts.on('--continue', 'continue running even if a test fails') do + opt_continue = true + end + # opts.on('--base', 'run also "base" directory') do + # opt_base = true + # end + opts.on_tail('--help', 'Show this message') do + puts opts + exit 100 + end +end +opts.parse! ARGV + +files = ARGV.empty? ? Dir.glob("test-*.rb") : ARGV + +# if opt_base +# Dir.chdir('base') do +# system("ruby #{opt_debug}../runall " + Dir.glob("*.rb").join(" ")) +# end +# end +files.each do |file| puts "=" * 50 puts "== running #{file}..." - system("ruby #{file}"); + system("ruby #{opt_debug}#{file}"); + exit $? >> 8 if ($? >> 8) != 0 && !opt_continue end -if ARGV[0] == "really" - system("(cd test && ruby #{debug_opt}runall)") - system("(cd examples && ruby #{debug_opt}runall)") -end From nobody at rubyforge.org Mon Dec 13 21:25:14 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Mon, 13 Dec 2010 21:25:14 -0500 (EST) Subject: [Ruby-debug-commits] [975] branches/ver_0_11_0: Start a major reworking of how stepping and set different work. Message-ID: <20101214022514.4D4F3167831D@rubyforge.org> Revision: 975 Author: rockyb Date: 2010-12-13 21:25:13 -0500 (Mon, 13 Dec 2010) Log Message: ----------- Start a major reworking of how stepping and set different work. Still need to go over step/next with a count. Modified Paths: -------------- branches/ver_0_11_0/ChangeLog branches/ver_0_11_0/cli/ruby-debug/command.rb branches/ver_0_11_0/cli/ruby-debug/commands/continue.rb branches/ver_0_11_0/cli/ruby-debug/commands/finish.rb branches/ver_0_11_0/cli/ruby-debug/commands/info.rb branches/ver_0_11_0/cli/ruby-debug/commands/stepping.rb branches/ver_0_11_0/cli/ruby-debug/processor.rb branches/ver_0_11_0/ext/breakpoint.c branches/ver_0_11_0/ext/ruby_debug.c branches/ver_0_11_0/ext/ruby_debug.h branches/ver_0_11_0/lib/ChangeLog branches/ver_0_11_0/lib/ruby-debug-base.rb branches/ver_0_11_0/test/data/annotate.cmd branches/ver_0_11_0/test/data/annotate.right branches/ver_0_11_0/test/data/break_loop_bug.cmd branches/ver_0_11_0/test/data/break_loop_bug.right branches/ver_0_11_0/test/data/breakpoints.cmd branches/ver_0_11_0/test/data/breakpoints.right branches/ver_0_11_0/test/data/display.cmd branches/ver_0_11_0/test/data/display.right branches/ver_0_11_0/test/data/finish.right branches/ver_0_11_0/test/data/frame.right branches/ver_0_11_0/test/data/info-var.right branches/ver_0_11_0/test/data/post-mortem-next.cmd branches/ver_0_11_0/test/data/post-mortem-next.right branches/ver_0_11_0/test/data/stepping.cmd branches/ver_0_11_0/test/data/stepping.right branches/ver_0_11_0/test/runall Modified: branches/ver_0_11_0/ChangeLog =================================================================== --- branches/ver_0_11_0/ChangeLog 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/ChangeLog 2010-12-14 02:25:13 UTC (rev 975) @@ -1,3 +1,21 @@ +2010-12-09 14:45 Rocky Bernstein + + * cli/ruby-debug/commands/info.rb, cli/ruby-debug/processor.rb, + test/data/breakpoints.right, test/data/catch.cmd, + test/data/catch.right: "info program" gives is a little more + descriptive of the program stop events for "catch" and + "breakpoint". + +2010-12-08 03:37 Rocky Bernstein + + * ChangeLog, lib/ChangeLog, test/base/binding.rb: Order of expect, + got reversed in assert_equal + +2010-12-07 10:27 Rocky Bernstein + + * doc/ruby-debug.texi: Add "installation" section. "set forcestep" + -> "set different". Update example output. + 2010-12-07 02:33 Rocky Bernstein * ChangeLog, INSTALL.SVN, Rakefile, ext, ext/extconf.rb, Modified: branches/ver_0_11_0/cli/ruby-debug/command.rb =================================================================== --- branches/ver_0_11_0/cli/ruby-debug/command.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/cli/ruby-debug/command.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -155,6 +155,7 @@ register_setting_var(:basename, false) # use basename in showing files? register_setting_var(:callstyle, :last) + register_setting_var(:debugskip, false) register_setting_var(:debuggertesting, false) register_setting_var(:force_stepping, false) register_setting_var(:full_path, true) Modified: branches/ver_0_11_0/cli/ruby-debug/commands/continue.rb =================================================================== --- branches/ver_0_11_0/cli/ruby-debug/commands/continue.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/cli/ruby-debug/commands/continue.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -20,6 +20,7 @@ end @state.context.set_breakpoint(filename, line_number) end + @state.processor.next_level = -1 @state.proceed end Modified: branches/ver_0_11_0/cli/ruby-debug/commands/finish.rb =================================================================== --- branches/ver_0_11_0/cli/ruby-debug/commands/finish.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/cli/ruby-debug/commands/finish.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -16,6 +16,7 @@ frame_pos = get_int(@match[1], "Finish", 0, max_frame-1, 0) return nil unless frame_pos end + @state.processor.next_level = -1 @state.context.stop_frame = frame_pos @state.frame_pos = 0 @state.proceed Modified: branches/ver_0_11_0/cli/ruby-debug/commands/info.rb =================================================================== --- branches/ver_0_11_0/cli/ruby-debug/commands/info.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/cli/ruby-debug/commands/info.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -312,6 +312,8 @@ when :breakpoint print("It stopped at breakpoint %d.\n", Debugger.breakpoints.index(event_arg) + 1) + when :tbreakpoint + print("It stopped at a temporary breakpoint.\n") when :catchpoint print("It stopped at catchpoint `%s' (%s) .\n", event_arg, event_arg.class) Modified: branches/ver_0_11_0/cli/ruby-debug/commands/stepping.rb =================================================================== --- branches/ver_0_11_0/cli/ruby-debug/commands/stepping.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/cli/ruby-debug/commands/stepping.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -9,8 +9,8 @@ elsif match[1] == '-' force = false end - steps = get_int(match[2], command_name, 1) - return [steps, force] + step_count = get_int(match[2], command_name, 1) + return [step_count, force] end end # Implements debugger "next" command. @@ -25,9 +25,10 @@ end def execute - steps, force = parse_stepping_args("Next", @match) + steps, @state.processor.different = parse_stepping_args("Next", @match) return unless steps - @state.context.step_over steps, @state.frame_pos, force + @state.processor.next_level = @state.context.stack_size - @state.frame_pos + @state.context.step_over steps, @state.frame_pos @state.proceed end @@ -58,9 +59,10 @@ end def execute - steps, force = parse_stepping_args("Step", @match) + steps, @state.processor.different = parse_stepping_args("Step", @match) return unless steps - @state.context.step(steps, force) + @state.processor.next_level = 10000 + @state.context.step(steps-1) @state.proceed end Modified: branches/ver_0_11_0/cli/ruby-debug/processor.rb =================================================================== --- branches/ver_0_11_0/cli/ruby-debug/processor.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/cli/ruby-debug/processor.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -55,6 +55,18 @@ class CommandProcessor < Processor attr_reader :display + # Set if we want a different line. The initial values come from + # Command.settings[:force_step] but individual step/next commands + # can adjust for the upcoming step. + attr_accessor :different + + # Fixnum. frame.stack_size has to be <= than this. If next'ing, + # this will be > 0. There is some code inside the C extension to + # handle this, which I've been ripping out because it is too + # complicated and wrong -- doesn't account for threads or + # breakpoints vs stepping. So for now, beware of that code as well + attr_accessor :next_level + # FIXME: get from Command regexp method. @@Show_breakpoints_postcmd = [ /^\s*b(?:reak)?/, @@ -84,11 +96,18 @@ @mutex = Mutex.new @last_cmd = nil + + # These are used to figure out if we are on a different position for + # "set different" @last_file = nil # Filename the last time we stopped @last_line = nil # line number the last time we stopped + @last_stack_size = nil + @debugger_breakpoints_were_empty = false # Show breakpoints 1st time @debugger_displays_were_empty = true # No display 1st time @debugger_context_was_dead = true # Assume we haven't started. + @different = Command.settings[:force_stepping] + @next_level = 10000 end def interface=(interface) @@ -152,14 +171,28 @@ # breakpoint event. For example ruby-debug-base calls this. def at_breakpoint(context, breakpoint) @event_arg = breakpoint + if :breakpoint == @last_event && @different && + same_position?(context) + # callback sometimes calls breakpoints twice. Until we + # have a better way to disambiguate... + breakpoint.hit_count -= 1 + return + end + save_position(context) aprint 'stopped' if Debugger.annotate.to_i > 2 - n = Debugger.breakpoints.index(breakpoint) + 1 + file = CommandProcessor.canonic_file(breakpoint.source) line = breakpoint.pos if Debugger.annotate.to_i > 2 print afmt("source #{file}:#{line}") end - print "Breakpoint %d at %s:%s\n", n, file, line + if :breakpoint == context.stop_reason + n = Debugger.breakpoints.index(breakpoint) + 1 + print "Breakpoint %d at %s:%s\n", n, file, line + else + print "Temporary breakpoint at %s:%s\n", file, line + end + process_commands(context) end protect :at_breakpoint @@ -167,6 +200,7 @@ # catchpoint. For example ruby-debug-base calls this. def at_catchpoint(context, excpt) @event_arg = excpt + save_position(context) aprint 'stopped' if Debugger.annotate.to_i > 2 file = CommandProcessor.canonic_file(context.frame_file(0)) line = context.frame_line(0) @@ -179,30 +213,36 @@ print "\tfrom %s\n", i end end + process_commands(context) end protect :at_catchpoint def at_tracing(context, file, line) return if defined?(Debugger::RDEBUG_FILE) && Debugger::RDEBUG_FILE == file # Don't trace ourself - @last_file = CommandProcessor.canonic_file(file) - canonic_file = CommandProcessor.canonic_file(file) - unless canonic_file == @last_file and @last_line == line and - Command.settings[:tracing_plus] + unless Command.settings[:tracing_plus] && same_position?(context) + canonic_file = CommandProcessor.canonic_file(file) print "Tracing(%d):%s:%s %s", context.thnum, canonic_file, line, Debugger.line_at(file, line) - @last_file = canonic_file - @last_line = line end + save_position(context) always_run(context, file, line, 2) end protect :at_tracing + # This is a callback routine when the debugged program goes into + # post-mortem. + def at_post_mortem(context) + process_commands(context) + end + protect :at_post_mortem + # This is a callback routine when the debugged program hits a # "line" (or statement boundary) event. For example # ruby-debug-base calls this. def at_line(context, file, line) - process_commands(context, file, line) + process_commands(context) unless stepping_skip?(context) + save_position(context) end protect :at_line @@ -212,7 +252,8 @@ # other bases routines such as the one in JRuby do. def at_return(context, file, line) context.stop_frame = -1 - process_commands(context, file, line) + save_position(context) + process_commands(context) end # Return the command object to run given input string _input_. @@ -243,6 +284,50 @@ private + # Used to be able to see if we are at the same line. + def save_position(context) + @last_file = context.frame_file(0) + @last_event = context.stop_reason + @last_line = context.frame_line(0) + @last_thread = context.thnum + @last_stack_size = context.stack_size + @last_event = context.stop_reason + end + + # Used when "set different" is on to test if we are at the same + # line. + def same_position?(context) + if Command.settings[:debugskip] + print ("old: #{@last_file}, #{@last_line}, #{@last_thread}, " + + "#{@last_stack_size}\n") + print ("new: #{context.frame_file(0)}, #{context.frame_line(0)}, " + + "#{context.thnum}, #{context.stack_size}\n") + end + @last_file == context.frame_file(0) && + @last_line == context.frame_line(0) && + @last_thread == context.thnum && + @last_stack_size == context.stack_size + end + + + # Used to test should skip because we are in a "step over". + def skip_level?(context) + @next_level < context.stack_size && @last_thread == context.thnum + end + + def stepping_skip?(context) + should_skip = (@different && same_position?(context)) || + skip_level?(context) + + if should_skip + # FIXME should be + # context.step(context.stop_next+1) + context.step(0) + end + print "skipping: #{should_skip} #{@different}\n" if Command.settings[:debugskip] + return should_skip + end + # Return a prompt string to show before reading a command. def prompt(context) p = '(rdb:%s) ' % (context.dead? ? 'post-mortem' : context.thnum) @@ -286,7 +371,9 @@ # This the main debugger command-line loop. Here we read a # debugger command, perform it, and ask for another one unless we # are told to continue execution or terminate. - def process_commands(context, file, line) + def process_commands(context) + file = context.frame_file(0) + line = context.frame_line(0) state, @commands = always_run(context, file, line, 1) $rdebug_state = state if Command.settings[:debuggertesting] splitter = lambda do |str| @@ -420,6 +507,7 @@ @previous_line = nil @proceed = false @processor = processor + @last_event = nil yield self end Modified: branches/ver_0_11_0/ext/breakpoint.c =================================================================== --- branches/ver_0_11_0/ext/breakpoint.c 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/ext/breakpoint.c 2010-12-14 02:25:13 UTC (rev 975) @@ -94,9 +94,6 @@ VALUE breakpoint; int i; - if(!CTX_FL_TEST(debug_context, CTX_FL_ENABLE_BKPT)) - return Qnil; - if(check_breakpoint_by_pos(debug_context->breakpoint, file, line)) return debug_context->breakpoint; @@ -117,9 +114,6 @@ VALUE breakpoint; int i; - if(!CTX_FL_TEST(debug_context, CTX_FL_ENABLE_BKPT)) - return Qnil; - if(check_breakpoint_by_method(debug_context->breakpoint, klass, mid, self)) return debug_context->breakpoint; @@ -461,6 +455,22 @@ /* * call-seq: + * breakpoint.hit_count = int + * + * Sets the hit count of the breakpoint. + */ +static VALUE +breakpoint_set_hit_count(VALUE self, VALUE value) +{ + debug_breakpoint_t *breakpoint; + + Data_Get_Struct(self, debug_breakpoint_t, breakpoint); + breakpoint->hit_count = FIX2INT(value); + return value; +} + +/* + * call-seq: * breakpoint.hit_value -> int * * Returns the hit value of the breakpoint. @@ -567,6 +577,7 @@ rb_define_method(cBreakpoint, "hit_condition", breakpoint_hit_condition, 0); rb_define_method(cBreakpoint, "hit_condition=", breakpoint_set_hit_condition, 1); rb_define_method(cBreakpoint, "hit_count", breakpoint_hit_count, 0); + rb_define_method(cBreakpoint, "hit_count=", breakpoint_set_hit_count, 1); rb_define_method(cBreakpoint, "hit_value", breakpoint_hit_value, 0); rb_define_method(cBreakpoint, "hit_value=", breakpoint_set_hit_value, 1); rb_define_method(cBreakpoint, "id", breakpoint_id, 0); Modified: branches/ver_0_11_0/ext/ruby_debug.c =================================================================== --- branches/ver_0_11_0/ext/ruby_debug.c 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/ext/ruby_debug.c 2010-12-14 02:25:13 UTC (rev 975) @@ -6,7 +6,7 @@ #include #include -#define DEBUG_VERSION "0.10.5.dev" +#define DEBUG_VERSION "0.11.0.dev" #ifdef _WIN32 struct FRAME { @@ -603,12 +603,10 @@ if(!debug_frame) return; debug_context->last_file = debug_frame->file; debug_context->last_line = debug_frame->line; - CTX_FL_UNSET(debug_context, CTX_FL_ENABLE_BKPT); CTX_FL_UNSET(debug_context, CTX_FL_STEPPED); - CTX_FL_UNSET(debug_context, CTX_FL_FORCE_MOVE); } -inline static char * +static char * get_event_name(rb_event_t event) { switch (event) { @@ -649,7 +647,7 @@ VALUE breakpoint = Qnil, binding = Qnil; debug_context_t *debug_context; char *file = NULL; - int line = 0, moved = 0; + int line = 0; hook_count++; @@ -700,32 +698,6 @@ if(debug == Qtrue) fprintf(stderr, "%s:%d [%s] %s\n", file, line, get_event_name(event), rb_id2name(mid)); - /* There can be many event calls per line, but we only want - *one* breakpoint per line. */ - if(debug_context->last_line != line || debug_context->last_file == NULL || - strcmp(debug_context->last_file, file) != 0) - { - CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT); - moved = 1; - } - else if(event == RUBY_EVENT_LINE) - { - /* There are two line-event trace hook calls per IF node - one - before the expression eval an done afterwards. - */ - /* FIXME: the static variable can't be safely used here, since this method - is re-entrant by multiple threads. If we want to provide this kind of functionality - if_eval_event variable must be moved to debug_context structure. - */ - /* - static int if_eval_event = 0; - if_eval_event = (NODE_IF == nd_type(node)) ? !if_eval_event : 0; - if (!if_eval_event) - { - CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT); - } - */ - } } else if(event != RUBY_EVENT_RETURN && event != RUBY_EVENT_C_RETURN) { @@ -739,8 +711,11 @@ fprintf(stderr, "nodeless [%s] %s\n", get_event_name(event), rb_id2name(mid)); } - if(event != RUBY_EVENT_LINE) + if(event != RUBY_EVENT_LINE) { + /* There is no chance on the next event that we have neither + stepped, or hit a different breakpoint. */ CTX_FL_SET(debug_context, CTX_FL_STEPPED); + } switch(event) { @@ -755,18 +730,20 @@ if(RTEST(tracing) || CTX_FL_TEST(debug_context, CTX_FL_TRACING)) rb_funcall(context, idAtTracing, 2, rb_str_new2(file), INT2FIX(line)); + if(debug == Qtrue) + fprintf(stderr, + "stop_line: %d, stop_next: %d, dest_frame, %d size: %d\n", + debug_context->stop_next, debug_context->stop_line, + debug_context->dest_frame, debug_context->stack_size + ); + if(debug_context->dest_frame == -1 || debug_context->stack_size == debug_context->dest_frame) { - if(moved || !CTX_FL_TEST(debug_context, CTX_FL_FORCE_MOVE)) - debug_context->stop_next--; - if(debug_context->stop_next < 0) - debug_context->stop_next = -1; - if(moved || (CTX_FL_TEST(debug_context, CTX_FL_STEPPED) && - !CTX_FL_TEST(debug_context, CTX_FL_FORCE_MOVE))) + if (debug_context->stop_line >= 0) debug_context->stop_line--; + if (CTX_FL_TEST(debug_context, CTX_FL_STEPPED)) { - debug_context->stop_line--; - CTX_FL_UNSET(debug_context, CTX_FL_STEPPED); + CTX_FL_UNSET(debug_context, CTX_FL_STEPPED); } } else if(debug_context->stack_size < debug_context->dest_frame) @@ -774,7 +751,7 @@ debug_context->stop_next = 0; } - if(debug_context->stop_next == 0 || debug_context->stop_line == 0 || + if(debug_context->stop_next == 0 || debug_context->stop_line == 0 || (breakpoint = check_breakpoints_by_pos(debug_context, file, line)) != Qnil) { binding = self? create_binding(self) : Qnil; @@ -789,17 +766,19 @@ break; if(!check_breakpoint_hit_condition(breakpoint)) break; - if(breakpoint != debug_context->breakpoint) - { - debug_context->stop_reason = CTX_STOP_BREAKPOINT; - rb_funcall(context, idAtBreakpoint, 1, breakpoint); - } - else + if(breakpoint == debug_context->breakpoint) { + /* Temporary breakpoint. Clear it now. */ debug_context->breakpoint = Qnil; + debug_context->stop_reason = CTX_STOP_TEMP_BREAKPOINT; + reset_stepping_stop_points(debug_context); + } else + debug_context->stop_reason = CTX_STOP_BREAKPOINT; + rb_funcall(context, idAtBreakpoint, 1, breakpoint); + break; } - reset_stepping_stop_points(debug_context); - call_at_line(context, debug_context, rb_str_new2(file), INT2FIX(line)); + call_at_line(context, debug_context, rb_str_new2(file), + INT2FIX(line)); } break; } @@ -836,15 +815,19 @@ { if(c_call_new_frame_p(klass, mid)) save_call_frame(event, self, file, line, mid, debug_context); +/* else set_frame_source(event, debug_context, self, file, line, mid); +*/ break; } case RUBY_EVENT_C_RETURN: { + /* note if a block is given we fall through! */ if(!node || !c_call_new_frame_p(klass, mid)) break; + } case RUBY_EVENT_RETURN: case RUBY_EVENT_END: @@ -863,7 +846,6 @@ if(debug_context->frames[debug_context->stack_size].orig_id == mid) break; } - CTX_FL_SET(debug_context, CTX_FL_ENABLE_BKPT); break; } case RUBY_EVENT_CLASS: @@ -1027,6 +1009,7 @@ rdebug_threads_tbl = threads_table_create(); rb_add_event_hook(debug_event_hook, RUBY_EVENT_ALL); + result = Qtrue; } @@ -1403,7 +1386,7 @@ Data_Get_Struct(context, debug_context_t, debug_context); debug_context->stack_size = 0; if(RTEST(stop)) - debug_context->stop_next = 1; + debug_context->stop_next = 0; /* Initializing $0 to the script's path */ ruby_script(RSTRING(file)->ptr); rb_load_protect(file, 0, &state); @@ -1501,45 +1484,53 @@ /* * call-seq: - * context.step(steps, force = false) + * context.step(steps) * * Stops the current context after a number of +steps+ are made. - * +force+ parameter (if true) ensures that the cursor moves from the current line. */ static VALUE -context_stop_next(int argc, VALUE *argv, VALUE self) +context_step_into(VALUE self, VALUE steps) { - VALUE steps, force; debug_context_t *debug_context; debug_check_started(); - rb_scan_args(argc, argv, "11", &steps, &force); if(FIX2INT(steps) < 0) rb_raise(rb_eRuntimeError, "Steps argument can't be negative."); Data_Get_Struct(self, debug_context_t, debug_context); debug_context->stop_next = FIX2INT(steps); - if(RTEST(force)) - CTX_FL_SET(debug_context, CTX_FL_FORCE_MOVE); - else - CTX_FL_UNSET(debug_context, CTX_FL_FORCE_MOVE); - return steps; } /* * call-seq: - * context.step_over(steps, frame = nil, force = false) + * context.stop_next * + * Shows how many steps remain to be skipped. + */ +static VALUE +context_stop_next(VALUE self) +{ + debug_context_t *debug_context; + + debug_check_started(); + + Data_Get_Struct(self, debug_context_t, debug_context); + return INT2FIX(debug_context->stop_next); +} + +/* + * call-seq: + * context.step_over(steps, frame = nil) + * * Steps over a +steps+ number of times. * Make step over operation on +frame+, by default the current frame. - * +force+ parameter (if true) ensures that the cursor moves from the current line. */ static VALUE context_step_over(int argc, VALUE *argv, VALUE self) { - VALUE lines, frame, force; + VALUE lines, frame; debug_context_t *debug_context; debug_check_started(); @@ -1547,7 +1538,7 @@ if(debug_context->stack_size == 0) rb_raise(rb_eRuntimeError, "No frames collected."); - rb_scan_args(argc, argv, "12", &lines, &frame, &force); + rb_scan_args(argc, argv, "11", &lines, &frame); debug_context->stop_line = FIX2INT(lines); CTX_FL_UNSET(debug_context, CTX_FL_STEPPED); if(frame == Qnil) @@ -1560,10 +1551,6 @@ rb_raise(rb_eRuntimeError, "Destination frame is out of range."); debug_context->dest_frame = debug_context->stack_size - FIX2INT(frame); } - if(RTEST(force)) - CTX_FL_SET(debug_context, CTX_FL_FORCE_MOVE); - else - CTX_FL_UNSET(debug_context, CTX_FL_FORCE_MOVE); return Qnil; } @@ -2156,6 +2143,9 @@ case CTX_STOP_BREAKPOINT: sym_name = "breakpoint"; break; + case CTX_STOP_TEMP_BREAKPOINT: + sym_name = "tbreakpoint"; + break; case CTX_STOP_CATCHPOINT: sym_name = "catchpoint"; break; @@ -2182,8 +2172,8 @@ Init_context() { cContext = rb_define_class_under(mDebugger, "Context", rb_cObject); - rb_define_method(cContext, "stop_next=", context_stop_next, -1); - rb_define_method(cContext, "step", context_stop_next, -1); + rb_define_method(cContext, "stop_next", context_stop_next, 0); + rb_define_method(cContext, "step", context_step_into, 1); rb_define_method(cContext, "step_over", context_step_over, -1); rb_define_method(cContext, "stop_frame=", context_stop_frame, 1); rb_define_method(cContext, "thread", context_thread, 0); Modified: branches/ver_0_11_0/ext/ruby_debug.h =================================================================== --- branches/ver_0_11_0/ext/ruby_debug.h 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/ext/ruby_debug.h 2010-12-14 02:25:13 UTC (rev 975) @@ -1,7 +1,7 @@ #include /* Context info */ enum ctx_stop_reason {CTX_STOP_NONE, CTX_STOP_STEP, CTX_STOP_BREAKPOINT, - CTX_STOP_CATCHPOINT}; + CTX_STOP_CATCHPOINT, CTX_STOP_TEMP_BREAKPOINT}; /* Context flags */ #define CTX_FL_SUSPEND (1<<1) Modified: branches/ver_0_11_0/lib/ChangeLog =================================================================== --- branches/ver_0_11_0/lib/ChangeLog 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/lib/ChangeLog 2010-12-14 02:25:13 UTC (rev 975) @@ -1,3 +1,7 @@ +2010-12-08 03:37 Rocky Bernstein + + * ChangeLog: Order of expect, got reversed in assert_equal + 2010-12-07 02:33 Rocky Bernstein * ChangeLog: Admnistrivia. Rakefile: rake test shouldn't su if Modified: branches/ver_0_11_0/lib/ruby-debug-base.rb =================================================================== --- branches/ver_0_11_0/lib/ruby-debug-base.rb 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/lib/ruby-debug-base.rb 2010-12-14 02:25:13 UTC (rev 975) @@ -54,6 +54,10 @@ handler.at_line(self, file, line) end + def at_post_mortem + handler.at_post_mortem(self) + end + def at_return(file, line) handler.at_return(self, file, line) end @@ -151,7 +155,7 @@ orig_tracing = Debugger.tracing, Debugger.current_context.tracing Debugger.tracing = Debugger.current_context.tracing = false Debugger.last_exception = exp - handler.at_line(exp.__debug_context, exp.__debug_file, exp.__debug_line) + handler.at_post_mortem(exp.__debug_context) ensure Debugger.tracing, Debugger.current_context.tracing = orig_tracing Debugger.resume Modified: branches/ver_0_11_0/test/data/annotate.cmd =================================================================== --- branches/ver_0_11_0/test/data/annotate.cmd 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/annotate.cmd 2010-12-14 02:25:13 UTC (rev 975) @@ -6,7 +6,8 @@ set different off set annotate 3 # Get into gcd -step 2 +step +step # "break" should trigger break annotation break 10 # "delete" should trigger break annotation Modified: branches/ver_0_11_0/test/data/annotate.right =================================================================== --- branches/ver_0_11_0/test/data/annotate.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/annotate.right 2010-12-14 02:25:13 UTC (rev 975) @@ -12,13 +12,24 @@ # set annotate 3 Annotation level is 3 # # Get into gcd -# step 2 +# step starting stopped breakpoints No breakpoints.  stack +--> #0 at line gcd.rb:18 + +variables +self = main + +source gcd.rb:18 +gcd(3,5) +# step +starting +stopped +stack --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6 #1 at line gcd.rb:18  Modified: branches/ver_0_11_0/test/data/break_loop_bug.cmd =================================================================== --- branches/ver_0_11_0/test/data/break_loop_bug.cmd 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/break_loop_bug.cmd 2010-12-14 02:25:13 UTC (rev 975) @@ -1,4 +1,5 @@ set debuggertesting on +set different off break 2 cont cont Modified: branches/ver_0_11_0/test/data/break_loop_bug.right =================================================================== --- branches/ver_0_11_0/test/data/break_loop_bug.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/break_loop_bug.right 2010-12-14 02:25:13 UTC (rev 975) @@ -2,6 +2,8 @@ 1.upto(2) { # set debuggertesting on Currently testing the debugger is on. +# set different off +different-line stepping is off. # break 2 Breakpoint 1 file bp_loop_issue.rb, line 2 # cont Modified: branches/ver_0_11_0/test/data/breakpoints.cmd =================================================================== --- branches/ver_0_11_0/test/data/breakpoints.cmd 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/breakpoints.cmd 2010-12-14 02:25:13 UTC (rev 975) @@ -16,7 +16,7 @@ continue where info program -c 6 +c info break break foo info break Modified: branches/ver_0_11_0/test/data/breakpoints.right =================================================================== --- branches/ver_0_11_0/test/data/breakpoints.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/breakpoints.right 2010-12-14 02:25:13 UTC (rev 975) @@ -33,45 +33,42 @@ 2 y at gcd.rb:10 3 y at Object:gcd # continue -Breakpoint 2 at gcd.rb:10 -gcd.rb:10 -return nil if a <= 0 +Breakpoint 1 at gcd.rb:6 +gcd.rb:6 +if a > b # where ---> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:10 +--> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6 #1 at line gcd.rb:18 # info program -Program stopped. It stopped at breakpoint 2. -# c 6 -Breakpoint 3 at Object:gcd -gcd.rb:4 -def gcd(a, b) +Program stopped. It stopped at breakpoint 1. +# c +Breakpoint 2 at gcd.rb:10 +gcd.rb:10 +return nil if a <= 0 # info break Num Enb What 1 y at gcd.rb:6 - breakpoint already hit 1 time + breakpoint already hit 2 times 2 y at gcd.rb:10 breakpoint already hit 1 time 3 y at Object:gcd - breakpoint already hit 1 time # break foo *** Invalid breakpoint location: foo. # info break Num Enb What 1 y at gcd.rb:6 - breakpoint already hit 1 time + breakpoint already hit 2 times 2 y at gcd.rb:10 breakpoint already hit 1 time 3 y at Object:gcd - breakpoint already hit 1 time # disable 1 # info break Num Enb What 1 n at gcd.rb:6 - breakpoint already hit 1 time + breakpoint already hit 2 times 2 y at gcd.rb:10 breakpoint already hit 1 time 3 y at Object:gcd - breakpoint already hit 1 time # delete 1 # # We should see breakpoint 2 but not 1 # info break @@ -79,7 +76,6 @@ 2 y at gcd.rb:10 breakpoint already hit 1 time 3 y at Object:gcd - breakpoint already hit 1 time # # We should still be able to access 2 # disable 2 # disable bar Modified: branches/ver_0_11_0/test/data/display.cmd =================================================================== --- branches/ver_0_11_0/test/data/display.cmd 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/display.cmd 2010-12-14 02:25:13 UTC (rev 975) @@ -2,6 +2,7 @@ # This tests display expressions. # *************************************************** set debuggertesting on +set different on b 6 c # Should be no display expression yet. Modified: branches/ver_0_11_0/test/data/display.right =================================================================== --- branches/ver_0_11_0/test/data/display.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/display.right 2010-12-14 02:25:13 UTC (rev 975) @@ -5,6 +5,8 @@ # # *************************************************** # set debuggertesting on Currently testing the debugger is on. +# set different on +different-line stepping is on. # b 6 Breakpoint 1 file gcd.rb, line 6 # c @@ -23,7 +25,7 @@ # disable display 1 # c Breakpoint 1 at gcd.rb:6 -2: b = 3 +2: b = 5 gcd.rb:6 if a > b # enable display b Modified: branches/ver_0_11_0/test/data/finish.right =================================================================== --- branches/ver_0_11_0/test/data/finish.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/finish.right 2010-12-14 02:25:13 UTC (rev 975) @@ -25,7 +25,21 @@ if a > b # where --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6 - #1 Object.-(a#Fixnum, b#Fixnum) at line gcd.rb:15 - #2 Object.-(a#Fixnum, b#Fixnum) at line gcd.rb:15 - #3 at line gcd.rb:18 + #1 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:15 + #2 at line gcd.rb:18 # finish 0 +Breakpoint 1 at gcd.rb:6 +gcd.rb:6 +if a > b +# where +--> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6 + #1 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:15 + #2 at line gcd.rb:18 +# p a +2 +# p b +3 +# finish +Breakpoint 1 at gcd.rb:6 +gcd.rb:6 +if a > b Modified: branches/ver_0_11_0/test/data/frame.right =================================================================== --- branches/ver_0_11_0/test/data/frame.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/frame.right 2010-12-14 02:25:13 UTC (rev 975) @@ -12,6 +12,7 @@ *** Line 3 is not a stopping point in file "gcd.rb". # # This time, for sure! # continue 6 +Temporary breakpoint at gcd.rb:6 gcd.rb:6 if a > b # where Modified: branches/ver_0_11_0/test/data/info-var.right =================================================================== --- branches/ver_0_11_0/test/data/info-var.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/info-var.right 2010-12-14 02:25:13 UTC (rev 975) @@ -8,6 +8,7 @@ Currently testing the debugger is on. # # Go to where we have a bad "inspect" of a local variable # continue 36 +Temporary breakpoint at info-var-bug.rb:36 info-var-bug.rb:36 return x # info variables @@ -15,6 +16,7 @@ x = # # # Go to where we have a bad "inspect" and "to_s" of a local variable # continue 40 +Temporary breakpoint at info-var-bug.rb:40 info-var-bug.rb:40 return x # info variables Modified: branches/ver_0_11_0/test/data/post-mortem-next.cmd =================================================================== --- branches/ver_0_11_0/test/data/post-mortem-next.cmd 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/post-mortem-next.cmd 2010-12-14 02:25:13 UTC (rev 975) @@ -2,7 +2,9 @@ # This tests running "next" over code that post-mortems # ****************************************************** set debuggertesting on -next 2 next +next +next +next quit Modified: branches/ver_0_11_0/test/data/post-mortem-next.right =================================================================== --- branches/ver_0_11_0/test/data/post-mortem-next.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/post-mortem-next.right 2010-12-14 02:25:13 UTC (rev 975) @@ -5,10 +5,15 @@ # # ****************************************************** # set debuggertesting on Currently testing the debugger is on. -# next 2 +# next +pm.rb:7 +x = 2 +# next pm.rb:8 zero_div # next pm.rb:5 1/0 +# next +*** Unknown command: "next". Try "help". # quit Modified: branches/ver_0_11_0/test/data/stepping.cmd =================================================================== --- branches/ver_0_11_0/test/data/stepping.cmd 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/stepping.cmd 2010-12-14 02:25:13 UTC (rev 975) @@ -13,9 +13,5 @@ n 2 step+ where -step 3 -step+ -where -next+ -# finish +step quit Modified: branches/ver_0_11_0/test/data/stepping.right =================================================================== --- branches/ver_0_11_0/test/data/stepping.right 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/data/stepping.right 2010-12-14 02:25:13 UTC (rev 975) @@ -33,18 +33,7 @@ # where --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:12 #1 at line gcd.rb:18 -# step 3 -gcd.rb:6 -if a > b -# step+ -gcd.rb:10 -return nil if a <= 0 -# where ---> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:10 - #1 Object.-(a#Fixnum, b#Fixnum) at line gcd.rb:15 - #2 at line gcd.rb:18 -# next+ +# step gcd.rb:12 if a == 1 or b-a == 0 -# # finish # quit Modified: branches/ver_0_11_0/test/runall =================================================================== --- branches/ver_0_11_0/test/runall 2010-12-13 00:12:45 UTC (rev 974) +++ branches/ver_0_11_0/test/runall 2010-12-14 02:25:13 UTC (rev 975) @@ -1,12 +1,37 @@ #!/usr/bin/env ruby -#-*- Ruby -*- -debug_opt = '-d ' if $DEBUG or 'd' == ARGV[0] -for file in Dir.glob("test-*.rb") do +require 'optparse' + +program = File.basename($0) +opt_debug ='' +opt_continue = false +opt_base = false +opts = OptionParser.new do |opts| + opts.on('-d', '--debug', 'Run passing -d') do + opt_debug = '-d ' + end + opts.on('--continue', 'continue running even if a test fails') do + opt_continue = true + end + # opts.on('--base', 'run also "base" directory') do + # opt_base = true + # end + opts.on_tail('--help', 'Show this message') do + puts opts + exit 100 + end +end +opts.parse! ARGV + +files = ARGV.empty? ? Dir.glob("test-*.rb") : ARGV + +# if opt_base +# Dir.chdir('base') do +# system("ruby #{opt_debug}../runall " + Dir.glob("*.rb").join(" ")) +# end +# end +files.each do |file| puts "=" * 50 puts "== running #{file}..." - system("ruby #{file}"); + system("ruby #{opt_debug}#{file}"); + exit $? >> 8 if ($? >> 8) != 0 && !opt_continue end -if ARGV[0] == "really" - system("(cd test && ruby #{debug_opt}runall)") - system("(cd examples && ruby #{debug_opt}runall)") -end From nobody at rubyforge.org Tue Dec 14 07:28:03 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Tue, 14 Dec 2010 07:28:03 -0500 (EST) Subject: [Ruby-debug-commits] [976] branches/ver_0_11_0: Add Debugger.stop in ensure block of tests. Message-ID: <20101214122803.C18791858376@rubyforge.org> Revision: 976 Author: rockyb Date: 2010-12-14 07:27:59 -0500 (Tue, 14 Dec 2010) Log Message: ----------- Add Debugger.stop in ensure block of tests. Patch tanks to Dennis Ushakov (endal). Modified Paths: -------------- branches/ver_0_11_0/ChangeLog branches/ver_0_11_0/test/base/base.rb branches/ver_0_11_0/test/base/binding.rb branches/ver_0_11_0/test/base/catchpoint.rb Modified: branches/ver_0_11_0/ChangeLog =================================================================== --- branches/ver_0_11_0/ChangeLog 2010-12-14 02:25:13 UTC (rev 975) +++ branches/ver_0_11_0/ChangeLog 2010-12-14 12:27:59 UTC (rev 976) @@ -1,3 +1,8 @@ +2010-12-13 00:12 Rocky Bernstein + + * test/runall: Stop at first failure. Clean up some of the crud + that's accumulated over the years. + 2010-12-09 14:45 Rocky Bernstein * cli/ruby-debug/commands/info.rb, cli/ruby-debug/processor.rb, Modified: branches/ver_0_11_0/test/base/base.rb =================================================================== --- branches/ver_0_11_0/test/base/base.rb 2010-12-14 02:25:13 UTC (rev 975) +++ branches/ver_0_11_0/test/base/base.rb 2010-12-14 12:27:59 UTC (rev 976) @@ -26,6 +26,7 @@ assert_equal(1, Debugger.current_context.stack_size) assert_equal(TestRubyDebug, Debugger.current_context.frame_class) assert_equal(false, Debugger.current_context.dead?, 'Not dead yet!') + ensure Debugger.stop assert_equal(false, Debugger.started?, 'Debugger should no longer be started.') @@ -47,6 +48,7 @@ 'There should only be one context.') assert_equal(Array, a.class, 'Context should be an array.') + ensure Debugger.stop assert_equal(false, Debugger.started?, 'debugger should no longer be started.') @@ -68,6 +70,7 @@ Debugger.remove_breakpoint(1) assert_equal(0, Debugger.breakpoints.size, 'There should no longer be any breakpoints set.') + ensure Debugger.stop end end Modified: branches/ver_0_11_0/test/base/binding.rb =================================================================== --- branches/ver_0_11_0/test/base/binding.rb 2010-12-14 02:25:13 UTC (rev 975) +++ branches/ver_0_11_0/test/base/binding.rb 2010-12-14 12:27:59 UTC (rev 976) @@ -26,6 +26,7 @@ y = eval('s', b) assert_equal(s, y) inside_fn + ensure Debugger.stop end end Modified: branches/ver_0_11_0/test/base/catchpoint.rb =================================================================== --- branches/ver_0_11_0/test/base/catchpoint.rb 2010-12-14 02:25:13 UTC (rev 975) +++ branches/ver_0_11_0/test/base/catchpoint.rb 2010-12-14 12:27:59 UTC (rev 976) @@ -19,6 +19,7 @@ Debugger.add_catchpoint('RuntimeError') assert_equal(['RuntimeError', 'ZeroDivisionError'], Debugger.catchpoints.keys.sort) + ensure Debugger.stop end From nobody at rubyforge.org Wed Dec 15 05:12:01 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 15 Dec 2010 05:12:01 -0500 (EST) Subject: [Ruby-debug-commits] [977] trunk: Make sure to ensure Debugger.stop in tests. Message-ID: <20101215101201.49CD4185834E@rubyforge.org> Revision: 977 Author: rockyb Date: 2010-12-15 05:12:00 -0500 (Wed, 15 Dec 2010) Log Message: ----------- Make sure to ensure Debugger.stop in tests. Thanks to Denis Ushakov for the patch ruby-debug.texi: Add separate section index for rdebug command flags Modified Paths: -------------- trunk/doc/ruby-debug.texi trunk/test/base/base.rb trunk/test/base/binding.rb trunk/test/base/catchpoint.rb Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-14 12:27:59 UTC (rev 976) +++ trunk/doc/ruby-debug.texi 2010-12-15 10:12:00 UTC (rev 977) @@ -98,9 +98,10 @@ * Using from Subversion:: Indexes (nodes containing large menus) -* Class Module Index:: An item for Class, Module, and Methods. -* Command Index:: An item for each command name. -* General Index:: An item for each concept. +* Class Module Index:: An item for Class, Module, and Methods. +* Command Index:: An item for each command name. +* RDebug Command Flags Index:: An item for each flags you can pass to rdebug. +* General Index:: An item for each concept. @end menu @end ifnottex @@ -1297,60 +1298,63 @@ @table @code @item --help - at cindex @option{-h} - at cindex @option{--help} + at findex @code{-h} (@code{--help}) + at findex @code{--help} This option causes @ttDBG{} to print some basic help and exit. @item -v | --version - at cindex @option{-v} + at findex @code{-v} (@code{--version}) + at findex @code{--version} This option causes @ttDBG{} to print its version number and exit. @item -A | --annotate @var{level} - at cindex @option{-A} - at cindex @option{--annotation} @var{level} + at findex @code{-A} @var{level} (@code{--annotation}) + at findex @code{--annotation} @var{level} Set gdb-style annotation @var{level}, a number. Additional information is output automatically when program state is changed. This can be used by front-ends such as GNU Emacs to post this updated information without having to poll for it. @item -c | --client - at cindex @option{-c} - at cindex @option{--client} + at findex @code{-c} (@code{--client}) + at findex @code{--client} Connect to remote debugger. The remote debugger should have been set up previously our you will get a connection error and @code{rdebug} will terminate. @item --cport @var{port} - at cindex @option{--cport} @var{port} + at findex @code{--cport} @var{port} Port used for control commands. @item --debug - at cindex @option{--debug} + at findex @code{--debug} Set @code{$DEBUG} to @code{true}. This option is compatible with Ruby's. @item --emacs + at findex @code{--emacs} Activates GNU Emacs mode. @c @pxref{GNU Emacs}. Debugger output is tagged in such a way to allow GNU Emacs to track where you are in the code. @item --emacs-basic + at findex @code{--emacs-basic} Activates full GNU Emacs mode. @c (@pxref{GNU Emacs}). -This is the equivalent of setting the options @option{--emacs-basic}, - at code{annotate=3}, @option{--no-stop}, @option{-no-control} and - at option{--post-mortem}. +This is the equivalent of setting the options @code{--emacs-basic}, + at code{annotate=3}, @code{--no-stop}, @code{-no-control} and + at code{--post-mortem}. @item -h | --host @var{host-address} Connect host address for remote debugging. @item -I --include @var{PATH} - at cindex @option{-I} @var{PATH} - at cindex @option{--include} @var{PATH} + at findex @code{-I} @var{PATH} (@code{--include}) + at findex @code{--include} @var{PATH} Add @var{PATH} to @code{$LOAD_PATH} @item --keep-frame-binding - at cindex @option{--keep-frame-binding} + at findex @code{--keep-frame-binding} Bindings are used to set the proper environment in evaluating expression inside the debugger. Under normal circumstances, I don't believe most people will ever need this option. @@ -1382,66 +1386,66 @@ is partly why this debugger doesn't work on Ruby 1.9. @item -m | --post-mortem - at cindex @option{-m} - at cindex @option{--post-mortem} + at findex @code{-m} (@code{--post-mortem}) + at findex @code{--post-mortem} If your program raises an exception that isn't caught you can enter the debugger for inspection of what went wrong. You may also want to -use this option in conjunction with @option{--no-stop}. See also +use this option in conjunction with @code{--no-stop}. See also @ref{Post-Mortem Debugging}. @item --no-control - at cindex @option{--no-control} + at findex @code{--no-control} Do not automatically start control thread. @item --no-quit - at cindex @option{--no-quit} + at findex @code{--no-quit} Restart the debugger when your program terminates normally. @item --no-rewrite-program - at cindex @option{--no-rewrite-program} + at findex @code{--no-rewrite-program} Normally @code{rdebug} will reset the program name @code{$0} from its name to the debugged program, and set the its name in variable @code{$RDEBUG_0}. In the unlikely even you don't want this use this option. @item --no-stop - at cindex @option{--no-stop} + at findex @code{--no-stop} Normally the @code{rdebug} stops before executing the first statement. If instead you want it to start running initially and will perhaps break it later in the running, use this options. @item -p | --port @var{port} - at cindex @option{-p} @var{port} - at cindex @option{--port} @var{port} + at findex @code{-p} @var{port} (@code{--port}) + at findex @code{--port} @var{port} Port used for remote debugging. @item -r | --require @var{library} - at cindex @option{-r} - at cindex @option{--require} + at findex @code{-r} @var{library} (@code{--require}) + at findex @code{--require} @var{library} Require the library, before executing your script. However if the library happened to be @code{debug}, we'll just ignore the require (since we're already a debugger). This option is compatible with Ruby's. @item --script @var{file} - at cindex @option{--script} + at findex @code{--script} @var{file} Require the library, before executing your script. However if the library hap-pend to be @code{debug}, we'll just ignore the require (since we're already a debugger). This option is compatible with Ruby's. @item -s | --server - at cindex @option{-s} - at cindex @option{--server} + at findex @code{-s} (@code{--server}) + at findex @code{--server} Debug the program but listen for remote connections on the default -port or port set up via the @option{--port} option. See also @option{--wait}. +port or port set up via the @code{--port} option. See also @code{--wait}. @item -w | --wait - at cindex @option{-w} - at cindex @option{--wait} + at findex @code{-w} (@code{--wait}) + at findex @code{--wait} Debug the program but stop waiting for a client connection first. This -option automatically sets @option{--server} option. +option automatically sets @code{--server} option. @item -x | --trace - at cindex @option{-x} - at cindex @option{--trace} + at findex @code{--trace} + at findex @code{-x} (@code{--trace}) Turn on line tracing. Running @command{rdebug --trace @emph{rubyscript.rb}} is much like running: @command{ruby -rtracer @emph{rubyscript.rb}} @@ -4016,6 +4020,10 @@ @unnumbered Command Index @printindex ky + at node RDebug Command Flags Index + at unnumbered RDebug Command Flags Index + at printindex fn + @node General Index @unnumbered General Index @printindex cp Modified: trunk/test/base/base.rb =================================================================== --- trunk/test/base/base.rb 2010-12-14 12:27:59 UTC (rev 976) +++ trunk/test/base/base.rb 2010-12-15 10:12:00 UTC (rev 977) @@ -26,6 +26,7 @@ assert_equal(1, Debugger.current_context.stack_size) assert_equal(TestRubyDebug, Debugger.current_context.frame_class) assert_equal(false, Debugger.current_context.dead?, 'Not dead yet!') + ensure Debugger.stop assert_equal(false, Debugger.started?, 'Debugger should no longer be started.') @@ -47,6 +48,7 @@ 'There should only be one context.') assert_equal(Array, a.class, 'Context should be an array.') + ensure Debugger.stop assert_equal(false, Debugger.started?, 'debugger should no longer be started.') @@ -68,6 +70,7 @@ Debugger.remove_breakpoint(1) assert_equal(0, Debugger.breakpoints.size, 'There should no longer be any breakpoints set.') + ensure Debugger.stop end end Modified: trunk/test/base/binding.rb =================================================================== --- trunk/test/base/binding.rb 2010-12-14 12:27:59 UTC (rev 976) +++ trunk/test/base/binding.rb 2010-12-15 10:12:00 UTC (rev 977) @@ -26,6 +26,7 @@ y = eval('s', b) assert_equal(s, y) inside_fn + ensure Debugger.stop end end Modified: trunk/test/base/catchpoint.rb =================================================================== --- trunk/test/base/catchpoint.rb 2010-12-14 12:27:59 UTC (rev 976) +++ trunk/test/base/catchpoint.rb 2010-12-15 10:12:00 UTC (rev 977) @@ -19,6 +19,7 @@ Debugger.add_catchpoint('RuntimeError') assert_equal(['RuntimeError', 'ZeroDivisionError'], Debugger.catchpoints.keys.sort) + ensure Debugger.stop end From nobody at rubyforge.org Wed Dec 15 05:19:25 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 15 Dec 2010 05:19:25 -0500 (EST) Subject: [Ruby-debug-commits] [978] branches/ver_0_11_0/doc/ruby-debug.texi: ruby-debug.texi: Add separate section index for rdebug command flags Message-ID: <20101215101925.C16FD185834E@rubyforge.org> Revision: 978 Author: rockyb Date: 2010-12-15 05:19:25 -0500 (Wed, 15 Dec 2010) Log Message: ----------- ruby-debug.texi: Add separate section index for rdebug command flags Modified Paths: -------------- branches/ver_0_11_0/doc/ruby-debug.texi Modified: branches/ver_0_11_0/doc/ruby-debug.texi =================================================================== --- branches/ver_0_11_0/doc/ruby-debug.texi 2010-12-15 10:12:00 UTC (rev 977) +++ branches/ver_0_11_0/doc/ruby-debug.texi 2010-12-15 10:19:25 UTC (rev 978) @@ -98,9 +98,10 @@ * Using from Subversion:: Indexes (nodes containing large menus) -* Class Module Index:: An item for Class, Module, and Methods. -* Command Index:: An item for each command name. -* General Index:: An item for each concept. +* Class Module Index:: An item for Class, Module, and Methods. +* Command Index:: An item for each command name. +* RDebug Command Flags Index:: An item for each flags you can pass to rdebug. +* General Index:: An item for each concept. @end menu @end ifnottex @@ -1297,60 +1298,63 @@ @table @code @item --help - at cindex @option{-h} - at cindex @option{--help} + at findex @code{-h} (@code{--help}) + at findex @code{--help} This option causes @ttDBG{} to print some basic help and exit. @item -v | --version - at cindex @option{-v} + at findex @code{-v} (@code{--version}) + at findex @code{--version} This option causes @ttDBG{} to print its version number and exit. @item -A | --annotate @var{level} - at cindex @option{-A} - at cindex @option{--annotation} @var{level} + at findex @code{-A} @var{level} (@code{--annotation}) + at findex @code{--annotation} @var{level} Set gdb-style annotation @var{level}, a number. Additional information is output automatically when program state is changed. This can be used by front-ends such as GNU Emacs to post this updated information without having to poll for it. @item -c | --client - at cindex @option{-c} - at cindex @option{--client} + at findex @code{-c} (@code{--client}) + at findex @code{--client} Connect to remote debugger. The remote debugger should have been set up previously our you will get a connection error and @code{rdebug} will terminate. @item --cport @var{port} - at cindex @option{--cport} @var{port} + at findex @code{--cport} @var{port} Port used for control commands. @item --debug - at cindex @option{--debug} + at findex @code{--debug} Set @code{$DEBUG} to @code{true}. This option is compatible with Ruby's. @item --emacs + at findex @code{--emacs} Activates GNU Emacs mode. @c @pxref{GNU Emacs}. Debugger output is tagged in such a way to allow GNU Emacs to track where you are in the code. @item --emacs-basic + at findex @code{--emacs-basic} Activates full GNU Emacs mode. @c (@pxref{GNU Emacs}). -This is the equivalent of setting the options @option{--emacs-basic}, - at code{annotate=3}, @option{--no-stop}, @option{-no-control} and - at option{--post-mortem}. +This is the equivalent of setting the options @code{--emacs-basic}, + at code{annotate=3}, @code{--no-stop}, @code{-no-control} and + at code{--post-mortem}. @item -h | --host @var{host-address} Connect host address for remote debugging. @item -I --include @var{PATH} - at cindex @option{-I} @var{PATH} - at cindex @option{--include} @var{PATH} + at findex @code{-I} @var{PATH} (@code{--include}) + at findex @code{--include} @var{PATH} Add @var{PATH} to @code{$LOAD_PATH} @item --keep-frame-binding - at cindex @option{--keep-frame-binding} + at findex @code{--keep-frame-binding} Bindings are used to set the proper environment in evaluating expression inside the debugger. Under normal circumstances, I don't believe most people will ever need this option. @@ -1382,66 +1386,66 @@ is partly why this debugger doesn't work on Ruby 1.9. @item -m | --post-mortem - at cindex @option{-m} - at cindex @option{--post-mortem} + at findex @code{-m} (@code{--post-mortem}) + at findex @code{--post-mortem} If your program raises an exception that isn't caught you can enter the debugger for inspection of what went wrong. You may also want to -use this option in conjunction with @option{--no-stop}. See also +use this option in conjunction with @code{--no-stop}. See also @ref{Post-Mortem Debugging}. @item --no-control - at cindex @option{--no-control} + at findex @code{--no-control} Do not automatically start control thread. @item --no-quit - at cindex @option{--no-quit} + at findex @code{--no-quit} Restart the debugger when your program terminates normally. @item --no-rewrite-program - at cindex @option{--no-rewrite-program} + at findex @code{--no-rewrite-program} Normally @code{rdebug} will reset the program name @code{$0} from its name to the debugged program, and set the its name in variable @code{$RDEBUG_0}. In the unlikely even you don't want this use this option. @item --no-stop - at cindex @option{--no-stop} + at findex @code{--no-stop} Normally the @code{rdebug} stops before executing the first statement. If instead you want it to start running initially and will perhaps break it later in the running, use this options. @item -p | --port @var{port} - at cindex @option{-p} @var{port} - at cindex @option{--port} @var{port} + at findex @code{-p} @var{port} (@code{--port}) + at findex @code{--port} @var{port} Port used for remote debugging. @item -r | --require @var{library} - at cindex @option{-r} - at cindex @option{--require} + at findex @code{-r} @var{library} (@code{--require}) + at findex @code{--require} @var{library} Require the library, before executing your script. However if the library happened to be @code{debug}, we'll just ignore the require (since we're already a debugger). This option is compatible with Ruby's. @item --script @var{file} - at cindex @option{--script} + at findex @code{--script} @var{file} Require the library, before executing your script. However if the library hap-pend to be @code{debug}, we'll just ignore the require (since we're already a debugger). This option is compatible with Ruby's. @item -s | --server - at cindex @option{-s} - at cindex @option{--server} + at findex @code{-s} (@code{--server}) + at findex @code{--server} Debug the program but listen for remote connections on the default -port or port set up via the @option{--port} option. See also @option{--wait}. +port or port set up via the @code{--port} option. See also @code{--wait}. @item -w | --wait - at cindex @option{-w} - at cindex @option{--wait} + at findex @code{-w} (@code{--wait}) + at findex @code{--wait} Debug the program but stop waiting for a client connection first. This -option automatically sets @option{--server} option. +option automatically sets @code{--server} option. @item -x | --trace - at cindex @option{-x} - at cindex @option{--trace} + at findex @code{--trace} + at findex @code{-x} (@code{--trace}) Turn on line tracing. Running @command{rdebug --trace @emph{rubyscript.rb}} is much like running: @command{ruby -rtracer @emph{rubyscript.rb}} @@ -4016,6 +4020,10 @@ @unnumbered Command Index @printindex ky + at node RDebug Command Flags Index + at unnumbered RDebug Command Flags Index + at printindex fn + @node General Index @unnumbered General Index @printindex cp From nobody at rubyforge.org Thu Dec 16 07:44:44 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Thu, 16 Dec 2010 07:44:44 -0500 (EST) Subject: [Ruby-debug-commits] [979] trunk/doc/ruby-debug.texi: Note no sudo in rvm's gem install Message-ID: <20101216124445.00A851858377@rubyforge.org> Revision: 979 Author: rockyb Date: 2010-12-16 07:44:44 -0500 (Thu, 16 Dec 2010) Log Message: ----------- Note no sudo in rvm's gem install Modified Paths: -------------- trunk/doc/ruby-debug.texi Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-15 10:19:25 UTC (rev 978) +++ trunk/doc/ruby-debug.texi 2010-12-16 12:44:44 UTC (rev 979) @@ -1178,7 +1178,7 @@ (@url{http://rvm.beginrescueend.com}), then: @smallexample - sudo gem install ruby-debug + sudo gem install ruby-debug # Note: nuke the 'sudo' if using rvm! @end smallexample Ruby debug uses a number of packages, namely: @code{ruby-debug-base}, From nobody at rubyforge.org Thu Dec 16 09:17:03 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Thu, 16 Dec 2010 09:17:03 -0500 (EST) Subject: [Ruby-debug-commits] [980] trunk/doc/ruby-debug.texi: Document autolist better. Message-ID: <20101216141703.BE4B81858356@rubyforge.org> Revision: 980 Author: rockyb Date: 2010-12-16 09:17:03 -0500 (Thu, 16 Dec 2010) Log Message: ----------- Document autolist better. Texinfo uses @: for TeX's \ . Regularize titles better. Modified Paths: -------------- trunk/doc/ruby-debug.texi Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-16 12:44:44 UTC (rev 979) +++ trunk/doc/ruby-debug.texi 2010-12-16 14:17:03 UTC (rev 980) @@ -241,6 +241,9 @@ (@pxref{Listsize}). To see the entire program in one shot, we gave an explicit starting and ending line number. +If you want a list command to run every time the debugger stops, use + at code{set autolist} (@pxref{Autolist}). + If you use a front-end to the debugger such as the Emacs interface, @c (@pxref{GNU Emacs}) you probably won't use @code{list} all that much. @@ -316,7 +319,7 @@ So far, so good. A you can see from the above to get out of the debugger, one can issue a @code{quit} command. (@code{q} and @code{exit} are just as good. If you want to quit without being -prompted, suffix the command with an exclamation mark, e.g.\@code{q!}. +prompted, suffix the command with an exclamation mark, e.g.@: @code{q!}. @node Second Sample Session @section Sample Session 2: Delving Deeper (@code{where}, @code{frame}, @code{restart}, @code{autoeval}, @code{break}, @code{ps}) @@ -2150,7 +2153,7 @@ @end smallexample If you find yourself wanting to go into irb every time you enter the -debugger, you can do this with the command ``set autolist'' @ref{Autoirb}. +debugger, you can do this with the command ``set autolist'' @ref{Autolist}. @end table @@ -2880,8 +2883,8 @@ @menu * Args:: Annotation Level * Autoeval:: Evaluate unrecognized commands -* Autolist:: Execute ``list'' command on every breakpoint * Autoirb:: Invoke IRB on every stop +* Autolist:: Execute ``list'' command on every stop * Autoreload:: Reload source code when changed * Basename:: Report file basename only showing file names * Callstyle:: Show Report file basename only showing file names @@ -2948,9 +2951,6 @@ Shows whether Ruby evaluation of debugger input should occur or not. @end table - at node Autolist - at subsection Execute ``list'' command on every breakpoint - @node Autoirb @subsection Set/Show auto-irb @@ -2969,6 +2969,25 @@ Shows whether the debugger will go into irb on stop or not. @end table + at node Autolist + at subsection Execute ``list'' Command on Every Stop + + at table @code + at kindex set autolist @r{[} on | 1 | off | 0 @r{]} + at item set autolist @r{[} on | 1 | off | 0 @r{]} +Normally, before prompting for debugger commands, the location and line +text are displayed. However many people find it nicer to show more +context around the line the program is stopped at. This can be done via +the @kbd{list} command. @xref{List}. + +However if you would like a @kbd{list} command to get run the program +stops turn this setting on. + + at kindex show autolist + at item show autolist +Shows whether the debugger will list lines on stop or not. + at end table + @node Autoreload @subsection Set/Show auto-reload @table @code @@ -2996,7 +3015,7 @@ @end table @node Callstyle - at subsection Set/Show call style + at subsection Set/Show Call Style @table @code @ifset FINISHED @@ -3042,7 +3061,7 @@ @end table @node Fullpath - at subsection Set/Show Frame full path + at subsection Set/Show Frame Full Path @node History @subsection Command History Parameters @@ -3079,10 +3098,10 @@ @end table @node Keepframebindings - at subsection Save frame binding on each call + at subsection Save Frame Binding on each Call @node Linetrace - at subsection Set/Show Line tracing + at subsection Set/Show Line Tracing @table @code @kindex set linetrace @r{[} on | 1 | off | 0 @r{]} @@ -3096,7 +3115,7 @@ @end table @node Linetrace+ - at subsection Set/Show Line tracing style + at subsection Set/Show Line Tracing Style @table @code @kindex set linetrace+ @r{[} on | 1 | off | 0 @r{]} @@ -3113,7 +3132,7 @@ @end table @node Listsize - at subsection Set/Show lines in a List command + at subsection Set/Show Number of Lines Shown in a List Command @table @code @kindex set listsize @var{number-of-lines} @@ -3125,7 +3144,7 @@ @end table @node Post-mortem - at subsection Show Post-mortem handling + at subsection Show Post-mortem Handling @table @code @kindex show post-mortem Shows wither post-mortem debugging is in effect. Right now we don't @@ -3136,7 +3155,7 @@ @subsection Display stack trace when 'eval' raises exception @node Width - at subsection Set/Show Line width + at subsection Set/Show Line Width @table @code @kindex set width @var{column-width} From nobody at rubyforge.org Thu Dec 16 09:21:40 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Thu, 16 Dec 2010 09:21:40 -0500 (EST) Subject: [Ruby-debug-commits] [981] branches/ver_0_11_0/doc/ruby-debug.texi: Keep in sync with head. Message-ID: <20101216142140.E00F71858356@rubyforge.org> Revision: 981 Author: rockyb Date: 2010-12-16 09:21:40 -0500 (Thu, 16 Dec 2010) Log Message: ----------- Keep in sync with head. Modified Paths: -------------- branches/ver_0_11_0/doc/ruby-debug.texi Modified: branches/ver_0_11_0/doc/ruby-debug.texi =================================================================== --- branches/ver_0_11_0/doc/ruby-debug.texi 2010-12-16 14:17:03 UTC (rev 980) +++ branches/ver_0_11_0/doc/ruby-debug.texi 2010-12-16 14:21:40 UTC (rev 981) @@ -241,6 +241,9 @@ (@pxref{Listsize}). To see the entire program in one shot, we gave an explicit starting and ending line number. +If you want a list command to run every time the debugger stops, use + at code{set autolist} (@pxref{Autolist}). + If you use a front-end to the debugger such as the Emacs interface, @c (@pxref{GNU Emacs}) you probably won't use @code{list} all that much. @@ -316,7 +319,7 @@ So far, so good. A you can see from the above to get out of the debugger, one can issue a @code{quit} command. (@code{q} and @code{exit} are just as good. If you want to quit without being -prompted, suffix the command with an exclamation mark, e.g.\@code{q!}. +prompted, suffix the command with an exclamation mark, e.g.@: @code{q!}. @node Second Sample Session @section Sample Session 2: Delving Deeper (@code{where}, @code{frame}, @code{restart}, @code{autoeval}, @code{break}, @code{ps}) @@ -1178,7 +1181,7 @@ (@url{http://rvm.beginrescueend.com}), then: @smallexample - sudo gem install ruby-debug + sudo gem install ruby-debug # Note: nuke the 'sudo' if using rvm! @end smallexample Ruby debug uses a number of packages, namely: @code{ruby-debug-base}, @@ -2150,7 +2153,7 @@ @end smallexample If you find yourself wanting to go into irb every time you enter the -debugger, you can do this with the command ``set autolist'' @ref{Autoirb}. +debugger, you can do this with the command ``set autolist'' @ref{Autolist}. @end table @@ -2880,8 +2883,8 @@ @menu * Args:: Annotation Level * Autoeval:: Evaluate unrecognized commands -* Autolist:: Execute ``list'' command on every breakpoint * Autoirb:: Invoke IRB on every stop +* Autolist:: Execute ``list'' command on every stop * Autoreload:: Reload source code when changed * Basename:: Report file basename only showing file names * Callstyle:: Show Report file basename only showing file names @@ -2948,9 +2951,6 @@ Shows whether Ruby evaluation of debugger input should occur or not. @end table - at node Autolist - at subsection Execute ``list'' command on every breakpoint - @node Autoirb @subsection Set/Show auto-irb @@ -2969,6 +2969,25 @@ Shows whether the debugger will go into irb on stop or not. @end table + at node Autolist + at subsection Execute ``list'' Command on Every Stop + + at table @code + at kindex set autolist @r{[} on | 1 | off | 0 @r{]} + at item set autolist @r{[} on | 1 | off | 0 @r{]} +Normally, before prompting for debugger commands, the location and line +text are displayed. However many people find it nicer to show more +context around the line the program is stopped at. This can be done via +the @kbd{list} command. @xref{List}. + +However if you would like a @kbd{list} command to get run the program +stops turn this setting on. + + at kindex show autolist + at item show autolist +Shows whether the debugger will list lines on stop or not. + at end table + @node Autoreload @subsection Set/Show auto-reload @table @code @@ -2996,7 +3015,7 @@ @end table @node Callstyle - at subsection Set/Show call style + at subsection Set/Show Call Style @table @code @ifset FINISHED @@ -3042,7 +3061,7 @@ @end table @node Fullpath - at subsection Set/Show Frame full path + at subsection Set/Show Frame Full Path @node History @subsection Command History Parameters @@ -3079,10 +3098,10 @@ @end table @node Keepframebindings - at subsection Save frame binding on each call + at subsection Save Frame Binding on each Call @node Linetrace - at subsection Set/Show Line tracing + at subsection Set/Show Line Tracing @table @code @kindex set linetrace @r{[} on | 1 | off | 0 @r{]} @@ -3096,7 +3115,7 @@ @end table @node Linetrace+ - at subsection Set/Show Line tracing style + at subsection Set/Show Line Tracing Style @table @code @kindex set linetrace+ @r{[} on | 1 | off | 0 @r{]} @@ -3113,7 +3132,7 @@ @end table @node Listsize - at subsection Set/Show lines in a List command + at subsection Set/Show Number of Lines Shown in a List Command @table @code @kindex set listsize @var{number-of-lines} @@ -3125,7 +3144,7 @@ @end table @node Post-mortem - at subsection Show Post-mortem handling + at subsection Show Post-mortem Handling @table @code @kindex show post-mortem Shows wither post-mortem debugging is in effect. Right now we don't @@ -3136,7 +3155,7 @@ @subsection Display stack trace when 'eval' raises exception @node Width - at subsection Set/Show Line width + at subsection Set/Show Line Width @table @code @kindex set width @var{column-width} From nobody at rubyforge.org Wed Dec 22 06:07:29 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 22 Dec 2010 06:07:29 -0500 (EST) Subject: [Ruby-debug-commits] [982] trunk/doc/ruby-debug.texi: Show how to use binding_n inside irb. Message-ID: <20101222110729.61620167831A@rubyforge.org> Revision: 982 Author: rockyb Date: 2010-12-22 06:07:28 -0500 (Wed, 22 Dec 2010) Log Message: ----------- Show how to use binding_n inside irb. Better tagging of Kernel routines debugger, binding_n and breakpoint. Modified Paths: -------------- trunk/doc/ruby-debug.texi Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-16 14:21:40 UTC (rev 981) +++ trunk/doc/ruby-debug.texi 2010-12-22 11:07:28 UTC (rev 982) @@ -3751,9 +3751,17 @@ @node Kernel routines @section Additions to @code{Kernel} + at menu +* debugger:: Call the debugger inside your program +* breakpoint:: Set a breakpoint +* binding_n:: Access to call-stack variables + at end menu + + at node debugger + at unnumberedsubsec debugger + @table @code - - at item debugger @ovar{steps=1} + at item Kernel::debugger @ovar{steps=1} @vindex @code{Kernel::debugger} Enters the debugger in the current thread after a stepping @var{steps} line-event steps. Before entering the debugger startup script is read. @@ -3810,17 +3818,43 @@ @end smallexample As seen above you will have to position the frame up one to be back in your debugged program rather than in the debugger. + at end table + at node breakpoint + at unnumberedsubsec breakpoint + + at table @code @item breakpoint @ovar{steps=1} @vindex @code{Kernel::breakpoint} An alias for debugger. + at end table + at node binding_n + at unnumberedsubsec binding_n + at table @code @item binding_n @ovar{n=0} @vindex @code{Kernel::binding_n} Returns a @samp{binding()} for the @var{n}-th call frame. Note however that you need to first call @samp{Debugger.start} before issuing this call. +Here is an example showing its use to introspect what is going on inside @kbd{irb} (a Ruby program). One could put the @emph{require}'s and @emph{Debugger.start} inside your own Ruby code as well. + +Here this an example showing use inside @emph{irb}: + at smallexample + $ irb + ruby-1.8.7-p302 > require 'rubygems' + => true + ruby-1.8.7-p302 > require 'ruby-debug-base' + => true + ruby-1.8.7-p302 > Debugger.start + /tmp/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/irb/workspace.rb:52 :i n `irb_binding' + /tmp/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/irb/workspace.rb:52 + => nil + ruby-1.8.7-p302 > eval "main", binding_n(2) + => #"ruby-1.8.7-p302 > ", :PROMPT_N=>" ruby-1.8.7-p302 ?> ", :PROMPT_S=>"ruby-1.8.7-p302%l> ", :PROMPT_C=>"ruby-1.8.7-p302 > ", :AUTO_INDENT=>true, :RETURN=>" => %s \n"@}> + ruby-1.8.7-p302 > + at end smallexample @end table @node Using from Subversion From nobody at rubyforge.org Wed Dec 22 06:14:14 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 22 Dec 2010 06:14:14 -0500 (EST) Subject: [Ruby-debug-commits] [983] trunk/doc/ruby-debug.texi: A couple of lines in binding_n example were missing Message-ID: <20101222111414.2DFD0185836C@rubyforge.org> Revision: 983 Author: rockyb Date: 2010-12-22 06:14:13 -0500 (Wed, 22 Dec 2010) Log Message: ----------- A couple of lines in binding_n example were missing Modified Paths: -------------- trunk/doc/ruby-debug.texi Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-22 11:07:28 UTC (rev 982) +++ trunk/doc/ruby-debug.texi 2010-12-22 11:14:13 UTC (rev 983) @@ -3848,6 +3848,8 @@ ruby-1.8.7-p302 > require 'ruby-debug-base' => true ruby-1.8.7-p302 > Debugger.start + => true + ruby-1.8.7-p302 > puts caller /tmp/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/irb/workspace.rb:52 :i n `irb_binding' /tmp/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/irb/workspace.rb:52 => nil From nobody at rubyforge.org Wed Dec 22 06:21:30 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Wed, 22 Dec 2010 06:21:30 -0500 (EST) Subject: [Ruby-debug-commits] [984] trunk/doc/ruby-debug.texi: Number some unnumberred sections. Message-ID: <20101222112130.BF8121858367@rubyforge.org> Revision: 984 Author: rockyb Date: 2010-12-22 06:21:30 -0500 (Wed, 22 Dec 2010) Log Message: ----------- Number some unnumberred sections. Kernel:: -> Kernel. since :: messes up texinfo. Modified Paths: -------------- trunk/doc/ruby-debug.texi Modified: trunk/doc/ruby-debug.texi =================================================================== --- trunk/doc/ruby-debug.texi 2010-12-22 11:14:13 UTC (rev 983) +++ trunk/doc/ruby-debug.texi 2010-12-22 11:21:30 UTC (rev 984) @@ -3758,11 +3758,11 @@ @end menu @node debugger - at unnumberedsubsec debugger + at subsection debugger @table @code @item Kernel::debugger @ovar{steps=1} - at vindex @code{Kernel::debugger} + at vindex @code{Kernel.debugger} Enters the debugger in the current thread after a stepping @var{steps} line-event steps. Before entering the debugger startup script is read. @@ -3821,19 +3821,19 @@ @end table @node breakpoint - at unnumberedsubsec breakpoint + at subsection breakpoint @table @code @item breakpoint @ovar{steps=1} - at vindex @code{Kernel::breakpoint} + at vindex @code{Kernel.breakpoint} An alias for debugger. @end table @node binding_n - at unnumberedsubsec binding_n + at subsection binding_n @table @code @item binding_n @ovar{n=0} - at vindex @code{Kernel::binding_n} + at vindex @code{Kernel.binding_n} Returns a @samp{binding()} for the @var{n}-th call frame. Note however that you need to first call @samp{Debugger.start} before issuing this call. From nobody at rubyforge.org Sat Dec 25 10:17:25 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Sat, 25 Dec 2010 10:17:25 -0500 (EST) Subject: [Ruby-debug-commits] [985] trunk: Get ready for 0.10.5 release Message-ID: <20101225151725.88926167831A@rubyforge.org> Revision: 985 Author: rockyb Date: 2010-12-25 10:17:25 -0500 (Sat, 25 Dec 2010) Log Message: ----------- Get ready for 0.10.5 release Modified Paths: -------------- trunk/CHANGES trunk/ChangeLog trunk/ext/ruby_debug.c trunk/lib/ChangeLog Modified: trunk/CHANGES =================================================================== --- trunk/CHANGES 2010-12-22 11:21:30 UTC (rev 984) +++ trunk/CHANGES 2010-12-25 15:17:25 UTC (rev 985) @@ -1,7 +1,7 @@ 0.10.5 - +12/25/10 + - Remove extraneous .RB files messing up Microsoft Windows - Deprecate "set force". Use "set di[fferent]. - 0.10.4 10/27/10 Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-12-22 11:21:30 UTC (rev 984) +++ trunk/ChangeLog 2010-12-25 15:17:25 UTC (rev 985) @@ -1,3 +1,58 @@ +2010-12-22 11:21 Rocky Bernstein + + * doc/ruby-debug.texi: Number some unnumberred sections. Kernel:: + -> Kernel. since :: messes up texinfo. + +2010-12-22 11:14 Rocky Bernstein + + * doc/ruby-debug.texi: A couple of lines in binding_n example were + missing + +2010-12-22 11:07 Rocky Bernstein + + * doc/ruby-debug.texi: Show how to use binding_n inside irb. Better + tagging of Kernel routines debugger, binding_n and breakpoint. + +2010-12-16 14:17 Rocky Bernstein + + * doc/ruby-debug.texi: Document autolist better. Texinfo uses @: + for TeX's \ . Regularize titles better. + +2010-12-16 12:44 Rocky Bernstein + + * doc/ruby-debug.texi: Note no sudo in rvm's gem install + +2010-12-15 10:12 Rocky Bernstein + + * doc/ruby-debug.texi, test/base/base.rb, test/base/binding.rb, + test/base/catchpoint.rb: Make sure to ensure Debugger.stop in + tests. Thanks to Denis Ushakov for the patch + ruby-debug.texi: Add separate section index for rdebug command + flags + +2010-12-13 00:12 Rocky Bernstein + + * test/runall: Stop at first failure. Clean up some of the crud + that's accumulated over the years. + +2010-12-09 14:45 Rocky Bernstein + + * cli/ruby-debug/commands/info.rb, cli/ruby-debug/processor.rb, + test/data/breakpoints.right, test/data/catch.cmd, + test/data/catch.right: "info program" gives is a little more + descriptive of the program stop events for "catch" and + "breakpoint". + +2010-12-08 03:37 Rocky Bernstein + + * ChangeLog, lib/ChangeLog, test/base/binding.rb: Order of expect, + got reversed in assert_equal + +2010-12-07 10:27 Rocky Bernstein + + * doc/ruby-debug.texi: Add "installation" section. "set forcestep" + -> "set different". Update example output. + 2010-12-07 02:33 Rocky Bernstein * ChangeLog, INSTALL.SVN, Rakefile, ext, ext/extconf.rb, Modified: trunk/ext/ruby_debug.c =================================================================== --- trunk/ext/ruby_debug.c 2010-12-22 11:21:30 UTC (rev 984) +++ trunk/ext/ruby_debug.c 2010-12-25 15:17:25 UTC (rev 985) @@ -6,7 +6,7 @@ #include #include -#define DEBUG_VERSION "0.10.5.dev" +#define DEBUG_VERSION "0.10.5" #ifdef _WIN32 struct FRAME { Modified: trunk/lib/ChangeLog =================================================================== --- trunk/lib/ChangeLog 2010-12-22 11:21:30 UTC (rev 984) +++ trunk/lib/ChangeLog 2010-12-25 15:17:25 UTC (rev 985) @@ -1,3 +1,7 @@ +2010-12-08 03:37 Rocky Bernstein + + * ChangeLog: Order of expect, got reversed in assert_equal + 2010-12-07 02:33 Rocky Bernstein * ChangeLog: Admnistrivia. Rakefile: rake test shouldn't su if From nobody at rubyforge.org Sat Dec 25 10:18:09 2010 From: nobody at rubyforge.org (nobody at rubyforge.org) Date: Sat, 25 Dec 2010 10:18:09 -0500 (EST) Subject: [Ruby-debug-commits] [986] ruby-debug-0.10.5/: Tag release. Message-ID: <20101225151809.242031858356@rubyforge.org> Revision: 986 Author: rockyb Date: 2010-12-25 10:18:08 -0500 (Sat, 25 Dec 2010) Log Message: ----------- Tag release. Added Paths: ----------- ruby-debug-0.10.5/