Permalink
Fetching contributors…
Cannot retrieve contributors at this time
876 lines (555 sloc) 30.3 KB

Changelog

Unreleased

Removed

  • Support for MRI 2.2. Byebug no longer installs on this platform.

10.0.2 - 2018-03-30

Fixed

10.0.1 - 2018-03-21

Fixed

10.0.0 - 2018-01-26

Changed

  • Breaking on methods now stops on the first effective line of a method, not on the line containing the def keyword.

Added

  • #393: Show valid breakpoint locations when invalid location given (@ko1).
  • #397: Ruby 2.5.0 support (@yui-knk).
  • Log host & port when launching byebug's client in remote mode.
  • #82: Some love & tests to remote debugging.
  • #141: remote_byebug shortcut to start the most common case for remote debugging.

Fixed

  • #419: Properly ignore ruby fullpath executable when passed to byebug script.
  • #141: Remote server crash when interrupting client.
  • #274: Remote server crash when interrupting client.
  • #239: Control server thread being able to interrupt main thread only a single time.

9.1.0 - 2017-08-22

Added

  • Better UI messages for breakpoint management.

Fixed

  • where command failing on instance_exec block stack frames.
  • #321: restart command crashing in certain cases because of a missing require "English" (@akaneko3).
  • #321: restart command crashing when debugged script is not executable or has no shebang (@akaneko3).

Removed

  • Ruby 2.0 and Ruby 2.1 official & unofficial support. Byebug no longer installs on these platforms.

9.0.6 - 2016-09-29

Fixed

  • #241: Error when using byebug with a ruby compiled against libedit.
  • #277: Allow Byebug.start_server to yield the block passed to it when the actual port is already known (@cben).
  • #275: Use a standard license name so it can be more reliably used by tools.

9.0.5 - 2016-05-28

Fixed

  • Error loading rc file when ENV["HOME"] is unset.

9.0.4 - 2016-05-19

Fixed

  • Errors in rc file not being displayed to the user.

9.0.3 - 2016-05-16

Fixed

  • #256: Unfriendly output in byebug's executable when no script specified.
  • Unfriendly output in byebug's executable when script doesn't exist.
  • Unfriendly output in byebug's executable when script has invalid code.

9.0.2 - 2016-05-15

Fixed

  • #263: Skip to get a line in eval context (@k0kubun).
  • #264: Debugger getting disabled after continue even when linetrace is enabled (@k0kubun).

9.0.1 - 2016-05-14

Fixed

  • #201: quit never exiting when remote debugging.

9.0.0 - 2016-05-11

Fixed

  • irb command unintentionally changing $PROGRAM_NAME.
  • pry command failing.
  • Unrelated error message when using pry command and Pry not installed.
  • #239: Interrupting program execution from remote control interface (@izaera).

Removed

  • Official Ruby 2.0.0 support. var local no longer works in Ruby 2.0. The rest of the commands should still work as before, but byebug is no longer tested against this version so they might start breaking in the future.

8.2.5 - 2016-04-27

Fixed

8.2.4 - 2016-04-08

Fixed

  • Reverts #211 which leads to an unusable debugger.

8.2.3 - 2016-04-07

Fixed

  • Better interaction with utilities like RSpec when hitting Ctrl-C.
  • #197: irb command when original program modified ARGV (@josephks).
  • #211: Unusable debugger when stdin redirected (@sethk).
  • #223: RC file loading when no explicit flag included.
  • #175: Installation on some Windows systems.
  • #226: Installation on some Windows systems.

8.2.2 - 2016-02-01

Fixed

  • Bug in rc file loading where most initialization commands would not be run.

8.2.1 - 2015-11-26

Fixed

  • Bug in evaluations using "eval".

8.2.0 - 2015-11-12

Fixed

  • #184: Due to the way of running evaluations in a separate thread.
  • #188: Due to the way of running evaluations in a separate thread.

Added

  • debug command to evaluate things in a separate thread, since this behavior was removed from default eval to fix the above issues.

8.1.0 - 2015-11-09

Fixed

  • Command history should be specific per project.
  • Better error message in certain edge cases when printing the backtrace.
  • Bug in evaluator which would show information about having stopped at a breakpoint in some cases.

Added

  • Ability to autolist source code after frame command.
  • Ability to stop at lines where methods return.

8.0.1 - 2015-11-07

Fixed

  • Error stream wouldn't be properly reset when using standalone byebug.
  • Confusing error message for invalid breakpoint locations.

8.0.0 - 2015-11-05

Fixed

  • #183. Compilation in Ruby 2.0. Regression introduced in 7.0.0.
  • "Return value is: nil" would be displayed when stopping right before the end of a class definition. We want to avoid showing anything instead.

Changed

  • Plugins now need to implement an at_end method (separate from at_return) in their custom processors.

7.0.0 - 2015-11-04

Fixed

  • #177. Some issues with formatting results of evaluations.
  • #144. Ruby process after using byebug does no longer get slow.
  • #121. byebug commands inside code evaluated from debugger's prompt are now properly working.
  • Another evaluation bug in autocommands.
  • finish 0 command would sometimes fail to stop right before exiting the current frame.
  • Runner's --[no-]stop option now works (@windwiny).
  • Change variable name bool, avoid conflict clang's predefined macro.

Removed

  • ps command.

Changed

  • #166. Don't load the entire library on require, but only when a byebug call is issued (@bquorning).
  • The above fix to the finish 0 command cause byebug's entrypoint to require 3 steps out instead of 2. In general, plugins using Byebug::Context.step_out will need to be changed to consider "c return events" as well.

Added

  • autopry setting that calls pry on every stop.
  • Return value information to debugger's output when finish 0 is used.

6.0.2 - 2015-08-20

Fixed

  • The user should always be given back a prompt unless (s)he explicitly states the opposite. This provides a more general fix to the bug resolved in 6.0.1.

6.0.1 - 2015-08-19

Fixed

  • Bug in evaluation where the user would lose the command prompt when entering an expression with a syntax error.

6.0.0 - 2015-08-17

Removed

  • autoeval setting. I haven't heard of anyone setting it to false.
  • pp, putl, eval. People just want to evaluate Ruby code, so the less magic the better. Most of the people probably were not aware that byebug was overriding stuff like pp or eval. Only keeping ps as the single "enhanced evaluation" command.
  • verbose setting.
  • info catch command. Use catch without arguments instead.
  • R command alias for restart.

Changed

  • info args is now var args.
  • interrupt is now aliased to int, not to i.
  • API to define custom commands and subcommands (see the Command class).

Fixed

  • #140. help command not showing the list of available commands and their descriptions.
  • #147. Setting breakpoints at symlinked files.

Added

  • API to define custom command processors (see the CommandProcessor class).

5.0.0 - 2015-05-18

Fixed

  • #136. frame command not working with negative numbers (@ark6).

Added

  • IDE support and a new command/subcommand API for plugins.
  • Add a "savefile" setting holding the file where "save" command saves current debugger's state.

Changed

  • disable no longer disable all breakpoints, it just shows command's help instead. To disable all breakpoints now you need to do disable breakpoints (or dis b). Similarly, you can't no longer use dis 1 2 3 but need to do dis b 1 2 3 to disable specific breakpoints. The same applies to the enable command.

Removed

  • help set <setting> no longer works. help set includes that same output and it's not verbose enough so that this is a problem. Same with help show <setting>.

4.0.5 - 2015-04-02

Fixed

  • #131.
  • Thread commands help format should be consistent with the rest of the help system now.

4.0.4 - 2015-03-27

Fixed

4.0.3 - 2015-03-19

Fixed

  • Unused variable warning in context.c.

4.0.2 - 2015-03-16

Fixed

  • #118. Remove rb-readline as a dependency and show a help message whenever requiring readline fails instead.

4.0.1 - 2015-03-13

Fixed

  • .yml files needed for printers support were missing from the release... :S
  • #118. Add readline as a dependency.

4.0.0 - 2015-03-13

Added

  • untracevar command that stops tracing a global variable.
  • Window CI build through AppVeyor.
  • OSX CI build through Travis.
  • Style enforcement through RuboCop.
  • C style enforment using the indent command line utility.
  • Some remote debugging tests (@eric-hu).
  • Printer's support (@astashov).

Changed

  • A lot of internal refactoring.
  • tracevar now requires the full global variable name (with "$").
  • #92. The catch command is not allowed in post_mortem mode anymore. It was not working anyways.
  • #85. step is now more user friendly when used in combination with up.
  • var const can now be called without an argument and will show constants in the current scope.
  • break with a class name now creates breakpoints regardless of class not being yet defined. If that's the case, it gives a warning but the class is created anyways.

Fixed

  • Code reloading issues.
  • set fullpath was not showing fullpaths. Now it is.
  • #93: up, down and frame commands now work in post_mortem mode.
  • rc file (.byebugrc) loading: invalid commands are just ignored instead of aborting, global (home) rc file is now properly loaded before project's file.
  • #93. Backtraces not working in post_mortem mode.
  • 'cmd1 ; cmd2 ; ...; cmdN' syntax which allows running several commands sequentially.
  • #101. finish command not stopping at the correct line.
  • #106. break with namespaced class, like break A::B#c should now work.
  • Command history is now persisted before exiting byebug.
  • Setting breakpoint in a method would stop not only at the beginning of the method but also at the beginning of every block inside the method.
  • #122. Setting breakpoints on module methods (@x-yuri).

Removed

  • autoreload setting as it's not necessary anymore. Code should always be up to date.
  • reload command for the same reason.
  • Gem dependency on debugger-linecache.
  • step+, step-, next+, next-, set/show linetrace_plus and set/show forcestep commands. These were all mechanisms to deal with TracePoint API event dupplication, but this duplicated events have been completely removed from the API since r48609, so they are no longer necessary.
  • info file subcommands: info file breakpoints, info file mtime, info file sha1, info file all. Now all information is listed under info file.
  • testing setting. It was just a hack to be able to test byebug. Nobody was supposed to actually use it!
  • var class command, just use Ruby (self.class.class_variables).
  • p command, just use eval, or just type your expression and byebug will autoevaluate it.
  • exit alias for quit.

3.5.1 - 2014-09-29

Fixed

  • #79. Windows installation.
  • condition command not properly detecting invalid breakpoint ids.

3.5.0 - 2014-09-28

Fixed

  • #81. Byebug's history messing up other programs using Readline.
  • Readline's history not being properly saved and inmediately available.
  • User not being notified when trying to debug a non existent script.

Changed

  • Complete rewrite of byebug's history.
  • Complete rewrite of list command.
  • Docs about stacktrace related commands (up, down, frame, backtrace).

3.4.2 - 2014-09-26

Fixed

  • #67. Debugging commands invoked by ruby executable, as in byebug -- ruby -Itest a_test.rb -n test_something.

3.4.1 - 2014-09-25

Fixed

  • #54. Use of threads inside eval command.
  • list command not listing backwards after reaching the end of the file.

3.4.0 - 2014-09-01

Fixed

  • deivid-rodriguez/pry-byebug#32 in a better way.

3.3.0 - 2014-08-28

Fixed

  • set verbose command.
  • set post_mortem false command.
  • Debugger stopping in byebug's internal frames in some cases.
  • backtrace crashing when fullpath setting disabled and calculated stack size being smaller than the real one.

Changed

  • The -t option for bin/byebug now turns tracing on whereas the -x option tells byebug to run the initialization file (.byebugrc) on startup. This is the default behaviour though.
  • bin/byebug libified and tests added.

Removed

  • info locals command. Use var local instead.
  • info instance_variables command. Use var instance instead.
  • info global_variables command. Use var global instead.
  • info variables command. Use var all instead.
  • irb command stepping capabilities, see 8e226d0.
  • script and restart-script options for bin/byebug.

3.2.0 - 2014-08-02

Fixed

Removed

  • post_mortem activation through Byebug.post_mortem. Use set post_mortem instead.
  • info stack command. Use where instead.
  • method iv command. Use var instance instead.
  • #77. Warning.

3.1.2 - 2014-04-23

Fixed

  • post_mortem mode in bin/byebug (really).
  • Line tracing in bin/byebug.

3.1.1 - 2014-04-23

Fixed

  • post_mortem mode in bin/byebug.

3.1.0 - 2014-04-23

Removed

  • show commands command. Use history instead.
  • Byebug.start accepting options. Any program settings you want applied from the start should be set in .byebugrc.
  • trace command. Use set linetrace for line tracing and tracevar for global variable tracing.
  • show version command. Use byebug --version to check byebug's version.
  • set arg setting. Use the restart command instead.

Changed

  • linetrace_plus setting renamed to tracing_plus.

Added

  • history command to check byebug's history of previous commands.

3.0.0 - 2014-04-17

Fixed

  • Plain byebug not working when pry-byebug installed.
  • post_mortem mode.
  • Command history not being saved after regular program termination.
  • #54. (Again) calling Byebug.start with Timeout.timeout (@zmoazeni).

Added

  • Allow disabling post_mortem mode.

Changed

  • show commands command for listing history of previous commands now behaves like shell's history command.
  • show/set history filename is now show/set histfile.
  • show/set history size is now show/set histsize.
  • show/set history save is now show/set autosave.
  • finish semantics, see 61f9b4d.
  • Use per project history file by default.

Removed

  • The init option for Byebug.start. Information to make the restart command work is always saved now.

2.7.0 - 2014-02-24

Fixed

  • #52. IGNORED_FILES slowing down startup.
  • #53. Calling Byebug.start with Timeout.timeout.
  • #54. Calling Byebug.start with Timeout.timeout.

2.6.0 - 2014-02-08

Fixed

2.5.0 - 2013-12-14

Added

  • Support for sublime-debugger.

2.4.1 - 2013-12-05

Fixed

2.4.0 - 2013-12-02

Fixed

  • thread list showing too many threads.
  • Fix setting post mortem mode with set post_mortem. Now this is the only post mortem functionality available as specifying Byebug.post_mortem with a block has been removed in this version.

Added

  • (Again) debugger as an alias to byebug (@wallace).
  • -R option for bin/byebug to specify server's hostname:port for remote debugging (@mrkn).

Changed

  • Use require instead of require_relative for loading byebug's extension library (@nobu).
  • trace variable $foo should be now trace variable $foo.

2.3.1 - 2013-10-17

Fixed

  • Breakpoint removal.
  • Broken test suite.

2.3.0 - 2013-10-09

Added

  • Compatibility with Phusion Passenger Enterprise (@FooBarWidget).

Changed

  • More minimalist help system.

2.2.2 - 2013-09-25

Fixed

  • Compilation issue in 64 bit systems.

2.2.1 - 2013-09-24

Fixed

  • #26. Compilation issue introduced in 2.2.0.

Changed

  • show/set stack_trace_on_error is now show/set stack_on_error.

2.2.0 - 2013-09-22

Fixed

  • Stack size calculations.
  • Setting post_mortem mode.

Added

  • verbose setting for TracePoint API event inspection.

Changed

  • Warning free byebug.
  • Allow edit <filename> without a line number.

2.1.1 - 2013-09-10

Fixed

  • Debugging code inside -e Ruby flag.

2.1.0 - 2013-09-08

Fixed

  • Remote debugging display.
  • eval crashing when inspecting raised an exception (reported by @iblue).

Changed

  • enable breakpoints now enables every breakpoint.
  • disable breakpoints now disables every breakpoint.

2.0.0 - 2013-08-30

Added

  • "Official" definition of a command API.
  • Thread support.

Removed

  • jump command. It had never worked.

Changed

  • Several internal refactorings.

1.8.2 - 2013-08-16

Fixed

  • save command now saves the list of displays.
  • Stack size calculation.

Changed

  • More user friendly regexps for commands.
  • Better help for some commands.

1.8.1 - 2013-08-12

Fixed

  • Major regression introduced in 1.8.0.

1.8.0 - 2013-08-12

Added

  • Remote debugging support.

1.7.0 - 2013-08-03

Added

  • List command automatically called after callstack navigation commands.
  • C-frames specifically marked in the callstack.
  • C-frames skipped when navigating the callstack.

1.6.1 - 2013-07-10

Fixed

  • Windows compatibiliy: compilation and terminal width issues.

1.6.0 - 2013-07-10

Fixed

  • byebug placed at the end of a block or method call not working as expected.
  • autolist being applied when Ruby -e option used.

Changed

  • Backtrace callstyles. Use long for detailed frames in callstack and short for more concise frames.

1.5.0 - 2013-06-21

Fixed

  • Incomplete backtraces when the debugger was not started at program startup.

1.4.2 - 2013-06-20

Fixed

  • help command subcommand command.
  • Interaction with Rails Console debugging flag.
  • post_mortem mode when running byebug from the outset.
  • no-quit flag when running byebug from the outset.

1.4.1 - 2013-06-15

Fixed

  • Crash when printing some filenames in backtraces.
  • Allow byebug developers to easily use compilers different from gcc (@GarthSnyder).

1.4.0 - 2013-06-05

Fixed

  • Memory leaks causing byebug to randomly crash.

Changed

  • Use the Debug Inspector API for backtrace information.

1.3.1 - 2013-06-02

Fixed

  • Interaction with Rails debugging flag.
  • Crash when trying to print lines of code containing the character '%'.
  • basename and linetrace options not working together.

1.3.0 - 2013-05-25

Added

  • Support colon-delimited include paths in command-line front-end (@ender672).

1.2.0 - 2013-05-20

Fixed

  • Ctrl+C during command line editing (works like pry/irb).

Added

  • pry command.

1.1.1 - 2013-05-07

Added

  • pry-byebug compatibility.

Changed

  • Better help system.
  • Code cleanup.

1.1.0 - 2013-04-30

Added

  • Post Mortem support.

1.0.3 - 2013-04-23

Fixed

  • Negative line numbers shown by list command at the beginning of file.
  • backtrace command segfaulting when trying to show info on some frame args. Don't know the reason yet, but the exception is handled now and command does not segfault anymore.

Changed

  • autoreload is set by default now.
  • Try some thread support (not even close to usable).

1.0.2 - 2013-04-09

Fixed

  • backtraces messed up when using both next/step and backtrace navigation commands.

Changed

  • autolist and autoeval are default settings now.

1.0.1 - 2013-04-06

Fixed

  • Byebug not loading properly.

1.0.0 - 2013-03-29

Fixed

  • Green test suite.

0.0.1 - 2013-03-18

Added

  • Initial release.