Canonicalize breakpoint locations a little better. More work should be done and more work should be done on the testing side too.
update texinfo for catch
Frame without a frame number means frame 0, same as gdb. We are now in 0.10.4 territory now.
Add rdoc for rdebug script.
Go over documentation and revise.
Move Debugger#debugger from base to cli. Revert code in ruby_debug.c and block parameter in debugger. cf. -> Compare with. Document Debugger#start better.
Make Debugger#start{block} work if Debugger.started? is false. Second try.
Tweak truncated stack test since Ruby's caller doesn't seem to include (tail?) recursive calls and we do. Get regression tests working in light of recent changes.
a little bit more readable
Debugger#start must always call the passed block
Change truncated frame message.
Add check to “where” to see if the call stack is truncated; task #2354
#22698 Allow ruby-debug-base 0.x.y.z be compatible with ruby-debug 0.x.y.
Debugger#start with a block now stops inside the block. Debugger.debugger with a block works like Debugger#start with a block. The whole interface is hopelessly kludgy and needs to be redone.
Doc typo. Add comment to remind me how to turn off optimizationin extconf.rb
Warn and add a “confirmation” when setting a breakpoint on a file that is not loaded. Regression tests no longer fail.
#22118 bug in showing variables post mortem. Patch thanks to rubikitch. Update pm.rb integration test.
Show line numbers when $DEBUG is set. Patch #21772 from Martin Krauskopf
Tracker [#20041] start erroneously moved to Kernel - should be in Debugger#start
trace.rb: add “trace var” ruby-debug-base.rb: remove another undefined warning.
Remove dup lines.
Handle “catch nnn off” Forgotten there during r656. From mkrauskopf [#20156].
make test-frame installation independent. Bug #19931
Test line number in “continue” command for validity.
From Martin Krauskopf via patch #19779 Allow folks to configure Ruby used for CLI tests in the test/config.yaml. The defaults are for native Ruby, so nothing needs to be done for ruby-debug. Developers of interfaces other than cli might override config.yaml by customized config.private.yaml which is ignored. So there will be no trash in e.g. 'svn st' output when developer customize the Ruby to be used. Handy for alternative interface implementations using svn:externals.
Experiment with debugger(steps=0). Puts us in the debugger call, but this may be the best we can do for now. See tracker #19639.
In 0.10.2 now. Some work to cope systems without readline. More work is needed. Add test of “set autoeval.” Undefined command message more closely like gdb's.
linecache is required by ruby-debug-base not ruby-debug. Thanks Martin!
Last change before 0.10.1 release.
Cosmetic stuff: spelling corrections. Update node structure so texinfo doesn't complain.
autorequire is deprecated and presumably no longer needed blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/182827
ruby-debug-base.rb: document Debugger#start parameters. CHANGES: Revise what's happened test-shortkey.el: A failing regression test because I think rdebug-shortkey-mode is not correct.
Allow setting :post_mortem => true from Debugger#start.
Don't unconditionally turn on short-key mode when annotations are on. Use rdebug-short-key-mode setting to decide.
set.rb -> settings.rb since it's already one command per file, and remove another :nodoc. Rakefile: split long line
Fix bug in 'list' command when wrapping off the end. test-finish.rb: tolerate buggy in Ruby versions <= 1.8.7.
INCOMPATIBLE CHANGE: “finish” works like gdb - stop just before the most recent method finishes. Will now accept a number which stops that many frames completed. (Note that return line numbers will be funny, the first line of the method until Ruby 1.8.7.)
Dunno why we are now one line number less. So be it
For now we require the duplicate numbers on conditionals.
Better error message for an invalid break command.
breakpoints.{cmd,right}: test for an invalid stopping line number rdebug-fns.el: move generic split-string-and-unquote from rdebug-core. rdebug-core.el: Add rdebug-common-init to replace gud-common-init. Is simpler, and finds files better via debugger output/annotations. Fix bug in rdebug-setup-windows: gud-find-file can return nil, and we still need to set buf.
Slightly more robust handle_post_mortem.
Go over source location positioning. 0 is now the oldest (first) position. Add M-S-down and M-S-up for first and last. More tests needed in test-fns.el and need to prompt on wrap around.
Fix bug in “info file xxx breakpoints”.
rdebug; make more Ruby 1.9 compatible.
Minor changes. rdbg.rb: don't need $DEBUG test any more rdebug-regexp.el: go over with checkdoc bin/rdebug: use PATH_SEPARATOR (for 'doze again)
CLI: Add long help for “info file”. test/test-help.rb: Make test failures easier to fix and more like the other tests. emacs/test: finish testing all of the funcitons in rdebug-fns.el rdebug-layouts.el: Make checkdoc clean. rdebug-track.el: don't need to rename shell buffer. Do it as an option only. rdebug-secondary.el: get rid of hoaky buffer finding for at least gud-comint-buf. (Should probably do others as well) DOC: Note weird line stopping locations. Describe what “ctrl” in prompt means.
Fringe for frame buffer the same as in source code. Move miscellaneous small functions to a new file. Reduce duplication of “chomp” code.
rdebug-cmd.el: M-insert toggles shortkey mode in the command buffer rdebug: search for Ruby program if file is not found and no SEPARATOR chars in the filename
Frame switching shouldn't be recorded in position history ring.
Add Debugger.last_exception. Show exception in post-mortem when “info program” is issued. Reorganize list of major changes better.
processor.rb: spelled “post-mortem” incorrectly in prompt.
Set up keys for comint-next-prompt and comint-previous-prompt.
Fix bug in “info thread verbose” which wasn't showing full traceback.
helper.rb Failed attempt to DRY tests more. But save what we have which may someday in the future be used to go further. Minus to undercore in Data file names in preparation such time. (We'll use the filename as the test name). testing
Add 'nowarn to find-file-noselect and test that we don't get a warning.
rdebug.el: Add a defgroup for rdebug so customization in Emacs 23 is possible. Some other minor doc fixes. setshow.* make sure we don't have an $Id line that we have to check against.
Try to get testing a little more organized, although more work should be done: Create a data directory for comparison (“right”) and script command (“cmd”) files. Code is now more uniform (and should DRY'd a bit more).
Remove commands in post-mortem which are not applicable, e.g.“step”, “next”, “continue”… “No breakpoints have been set” is now an error message when trying to set a breakpoint. Add post-mortem test. Debug.init no longer exists.
Remove Debugger.init and fold options parameter into Debugger#start. Old Debugger#start has been renamed Deebugger.start_
Leave ruby_debug.c this way for now.
ruby_debug.c: more adventures in exception handling processor.rb: Removal of crash when annotate is on. Need to fix the source of the problem though.
Handle post-mortem and exception traceback reporting in ruby-debug
Add Command.find() to find a subcommand name. condition.right: correct for breakpoint hit counts.
Add number of times a breakpoint is hit like gdb does.
Columnize breakpoint output.
More annotate=2 fixes.
Add info file breakpoints to show lines which we can set a breakpoint on. Revise so we chdir into SRC_DIR. test-hist.rb is broken - will fix later.
Add Debugger.init which intializes things that rdebug does. This allows a restart even though rdebug wasn't called initially.
Allow “help info xxx”. Add ability for long help on “info” command. Add “info break xx”. test: remove test/unit class name conflicts. All the tests we wrote now get run.
Move ruby-debug-base tests to base directory. Add a binding_n regression test.
Need to present source filename (__FILE__) as Ruby and therefore breakpoint sees it.
Line caching moved to an external gem, linecache. We now require version 0.2 of that or greater.
Make rdebug-track work better in the face of prompt and error annotations. control.rb: need another test when rdebug not called initially.
Some stack -> frame renaming ext/breakpoint.c: put methods in alpha order (to help with reference man) breakpoints.rb: one print -> errmsg
Create errmsg routine for error output, start tagging error messages as errors. Under annotate 3, output errors similar to gdb –annotate does (although still simplified). Have Emacs pick up debugger error annotations.
Check validity of expressions in breakpoint conditions and don't allow enabling a syntactically invalid expression. Start noting messages which are errors via an errmsg routine.
Document that ruby-debug resets $0. Align program options in ref manual and –help. Alphabetize better.
More correct $0 fix. Deal with the case ./ is automatically added. However this might not be right in all cases.
Was gobbling arg in processing –emacs. Add test.
Add condition command.
Rakefile: rdebug.rb -> rdbg.el rdebug-dbg.el: Add $Id$
Break out secondary buffer into their own file, and also internal debug code and general secondary commands. Secondary buffer code removed from rdebug-cmd and moved into the appropriate file. rdebug-edit-variables-value is not defined so comment out for now.
Restore $: to the value it was before rdebug call.
Add “var class”. This means “var const ..” can no longer be abbreviated “var c”; use “var co” instead.
Add class level variables to “info variables”
Add “self” to list “info variables” spits out.
–emacs sets width to 120. rdebug-core.el will reset to 120 unless it's already that.
Split out ChangeLogs better (I hope).
test/-emacs-basic, tdebug: Add test of running in Emacs without annotations. emacs/*.el: make regexp tests work again, move regexp to from core to regexp. Add an annotate regexp test. processor.rb: Remove some anotation print from bleeding into output when annotations are not wanted. Reinstate “Program finished” in annotations and outside (rdebug).
Create Processor class and subclass that. Perhaps a mixin would be good. Remove annotation output bleanding when annotate is off. Try to reduce the mess annotations is adding to processor.rb rdebug-core.el: fix indentation to pass the regression test Anders added Makefile.am: Add rdebug-source.el to distribution. Make sure “rake test”
Some work on saving state across a restart. More work is needed on the script command to get this working. The save-file name is now optional. save.rb split off from script.rb Display expressions and some settings are now captured in the save/restore file. Add interface.finalize - things that need to be done before quit or restart.
More work to make annotate more like gdb's. starting/stopping/exiting should be more similar. Some code has been commented out until we get the Emacs interface to match. See “FIXME: ANNOTATE” in processor.rb. Also regression tests for output and annotate currently fail for this reason.
helper.rb: add regexp for a position. TODO: add parsing routine and use in various commands
processor.rb: Redo where starting/exiting annotations are done. rdebug.el: back off on setting output command for now.
Fix –emacs to do –no-quit properly.
Remove RDoc warnings caused because C files have been split up.
reindent -> indent. Makefile.am: wasn't including all test files.
Rakefile: add spit-off C files to ruby-debug-base gem.
rdebug-test-cmd.el: Indentation
Changes and more changes.
Remove looping on quit. “-n” is broken so remove it for now.
info.rb: Incorrect test for no display expressions. display.rb: Grammar thing. processor.rb: Slightly cleaner code test/* more/better tests.
Be more agressive about resetting gud-last-frame and gud-last-last-frame. These foul up tracking when debugging is interrupted. We probably need a special “reset” command.
Version number games - maybe 0.10.1 is better.
Add step- and step+. Document as well as the new toggle command.
Small doc fixes.
Last commit before 0.10.0 release.
breakpoints.*: main -> Object. Add bad Class name test AUTHOR: Add Anders README: note ruby-debug-extra. More precise (I think)
Rakefile: set up gem unit test for ruby-debug-base. Add file in test/ so we could do the same for ruby-debug were it not for other mysterious problems.
Go over packaging: ChangeLogs for ruby-debug-base (in ext and lib) separate from CLI ChangeLog ChangeLogs now map userid to names ruby-debug-base regression test included in ruby-debug-base Columnize test separated. (It will disappear when ruby-debug requires it as an external)
Add “info variables test”. ruby-debug-base.rb: Not sure how test(?M, file) ever worked before but change to use File.stat(file).mtime info.rb: ignore debugger variables which are sometimes set.
doc changes.
Run .rdebugrc on Debugger#start. Look for this in the current directory and run that instead the one in $HOME if that exists. Again, inspired and compatible with gdb. rdebug: Check script for syntax errors before loading. We get more informative errors and it doesn't look like rdebug is at fault.
code reorganization. reverted 'run' command.
restore post_mortem
lib/ruby-debug-base.rb: add Quit and Restart exceptions which can reliably be used after the delayed exception handling bug is fixed emacs/rdebug-track.el and cli/ruby-debug/processor.rb: more accurate line tracking in EMACS. When not in emacs should be more like what was there.
parens around a print seems to give a warning. Remove.
post_mortem: to test $! before running debug_at_ext or else we may get an erroneous message: ruby-debug-base.rb:162:in `current_context': Debugger#start is not called yet. (RuntimeError) A simple test case to show the problem: “require rubygems” “require ruby-debug” Debugger#start Debugger.post_mortem exit # Causes us to incorrectly give the above error
various fixes
ditto
add breakpoint method as an alias for debugger in case breakpoint method is not defined already
will start the debugger if necessary
remove unused require uploaded new windows binary
remove unused constructor
new logic of context suspend/resume
fixed locking of debugger threads
fixes for windows version
added Debugger.skip and Debugger.debug_at_exit methods
initial import