Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Cannot retrieve contributors at this time
Support for MRI 2.2. Byebug no longer installs on this platform.
10.0.2 - 2018-03-30
10.0.1 - 2018-03-21
10.0.0 - 2018-01-26
Breaking on methods now stops on the first effective line of a method, not on the line containing the
#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.
remote_byebug shortcut to start the most common case for remote debugging.
#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
Better UI messages for breakpoint management.
where command failing on instance_exec block stack frames.
restart command crashing in certain cases because of a missing
require "English" (
restart command crashing when debugged script is not executable or has no shebang (
Ruby 2.0 and Ruby 2.1 official & unofficial support. Byebug no longer installs on these platforms.
9.0.6 - 2016-09-29
#241: Error when using
byebug with a ruby compiled against libedit.
Byebug.start_server to yield the block passed to it when the actual port is already known (
#275: Use a standard license name so it can be more reliably used by tools.
9.0.5 - 2016-05-28
Error loading rc file when
ENV["HOME"] is unset.
9.0.4 - 2016-05-19
Errors in rc file not being displayed to the user.
9.0.3 - 2016-05-16
#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
#263: Skip to get a line in eval context ( @k0kubun).
#264: Debugger getting disabled after
continue even when linetrace is enabled (
9.0.1 - 2016-05-14
quit never exiting when remote debugging.
9.0.0 - 2016-05-11
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).
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
8.2.4 - 2016-04-08
#211 which leads to an unusable debugger.
8.2.3 - 2016-04-07
Better interaction with utilities like RSpec when hitting Ctrl-C.
irb command when original program modified ARGV (
#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
Bug in rc file loading where most initialization commands would not be run.
8.2.1 - 2015-11-26
Bug in evaluations using "eval".
8.2.0 - 2015-11-12
#184: Due to the way of running evaluations in a separate thread.
#188: Due to the way of running evaluations in a separate thread.
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
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.
Ability to autolist source code after
Ability to stop at lines where methods return.
8.0.1 - 2015-11-07
Error stream wouldn't be properly reset when using standalone
Confusing error message for invalid breakpoint locations.
8.0.0 - 2015-11-05
#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.
Plugins now need to implement an
at_end method (separate from
at_return) in their custom processors.
7.0.0 - 2015-11-04
#177. Some issues with formatting results of evaluations.
#144. Ruby process after using byebug does no longer get slow.
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.
--[no-]stop option now works (
@windwiny). Change variable name
bool, avoid conflict clang's predefined macro.
#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.
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
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 - 2015-08-19
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
autoeval setting. I haven't heard of anyone setting it to false.
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
eval. Only keeping
ps as the single "enhanced evaluation" command.
info catch command. Use
catch without arguments instead.
R command alias for
info args is now
interrupt is now aliased to
int, not to
API to define custom commands and subcommands (see the Command class).
help command not showing the list of available commands and their descriptions.
#147. Setting breakpoints at symlinked files.
API to define custom command processors (see the CommandProcessor class).
5.0.0 - 2015-05-18
frame command not working with negative numbers (
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.
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
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
#131. Thread commands help format should be consistent with the rest of the help system now.
4.0.4 - 2015-03-27
4.0.3 - 2015-03-19
Unused variable warning in
4.0.2 - 2015-03-16
rb-readline as a dependency and show a help message whenever requiring
readline fails instead.
4.0.1 - 2015-03-13
.yml files needed for printers support were missing from the release... :S
readline as a dependency.
4.0.0 - 2015-03-13
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 (
A lot of internal refactoring.
tracevar now requires the full global variable name (with "$").
catch command is not allowed in post_mortem mode anymore. It was not working anyways.
step is now more user friendly when used in combination with
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.
Code reloading issues.
set fullpath was not showing fullpaths. Now it is.
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
'cmd1 ; cmd2 ; ...; cmdN' syntax which allows running several commands sequentially.
finish command not stopping at the correct line.
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).
autoreload setting as it's not necessary anymore. Code should always be up to date.
reload command for the same reason.
Gem dependency on
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
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 (
p command, just use
eval, or just type your expression and
byebug will autoevaluate it.
exit alias for
3.5.1 - 2014-09-29
#79. Windows installation.
condition command not properly detecting invalid breakpoint ids.
3.5.0 - 2014-09-28
#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.
Complete rewrite of byebug's history.
Complete rewrite of list command.
Docs about stacktrace related commands (
3.4.2 - 2014-09-26
#67. Debugging commands invoked by ruby executable, as in
byebug -- ruby -Itest a_test.rb -n test_something.
3.4.1 - 2014-09-25
#54. Use of threads inside
list command not listing backwards after reaching the end of the file.
3.4.0 - 2014-09-01
deivid-rodriguez/pry-byebug#32 in a better way.
3.3.0 - 2014-08-28
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.
-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.
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
restart-script options for
3.2.0 - 2014-08-02
post_mortem activation through
set post_mortem instead.
info stack command. Use
method iv command. Use
var instance instead.
3.1.2 - 2014-04-23
post_mortem mode in
Line tracing in
3.1.1 - 2014-04-23
post_mortem mode in bin/byebug.
3.1.0 - 2014-04-23
show commands command. Use
Byebug.start accepting options. Any program settings you want applied from the start should be set in
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.
linetrace_plus setting renamed to
history command to check byebug's history of previous commands.
3.0.0 - 2014-04-17
byebug not working when
Command history not being saved after regular program termination.
#54. (Again) calling
show commands command for listing history of previous commands now behaves like shell's
show/set history filename is now
show/set history size is now
show/set history save is now
finish semantics, see
61f9b4d. Use per project history file by default.
init option for
Byebug.start. Information to make the
restart command work is always saved now.
2.7.0 - 2014-02-24
IGNORED_FILES slowing down startup.
2.6.0 - 2014-02-08
2.5.0 - 2013-12-14
2.4.1 - 2013-12-05
2.4.0 - 2013-12-02
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.
debugger as an alias to
-R option for
bin/byebug to specify server's hostname:port for remote debugging (
require instead of
require_relative for loading byebug's extension library (
trace variable $foo should be now
trace variable $foo.
2.3.1 - 2013-10-17
Broken test suite.
2.3.0 - 2013-10-09
More minimalist help system.
2.2.2 - 2013-09-25
Compilation issue in 64 bit systems.
2.2.1 - 2013-09-24
#26. Compilation issue introduced in 2.2.0.
show/set stack_trace_on_error is now
2.2.0 - 2013-09-22
Stack size calculations.
verbose setting for TracePoint API event inspection.
Warning free byebug.
edit <filename> without a line number.
2.1.1 - 2013-09-10
Debugging code inside
-e Ruby flag.
2.1.0 - 2013-09-08
Remote debugging display.
eval crashing when inspecting raised an exception (reported by
enable breakpoints now enables every breakpoint.
disable breakpoints now disables every breakpoint.
2.0.0 - 2013-08-30
"Official" definition of a command API.
jump command. It had never worked.
Several internal refactorings.
1.8.2 - 2013-08-16
save command now saves the list of
Stack size calculation.
More user friendly regexps for commands.
Better help for some commands.
1.8.1 - 2013-08-12
Major regression introduced in
1.8.0 - 2013-08-12
Remote debugging support.
1.7.0 - 2013-08-03
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
Windows compatibiliy: compilation and terminal width issues.
1.6.0 - 2013-07-10
byebug placed at the end of a block or method call not working as expected.
autolist being applied when Ruby
-e option used.
Backtrace callstyles. Use
long for detailed frames in callstack and
short for more concise frames.
1.5.0 - 2013-06-21
Incomplete backtraces when the debugger was not started at program startup.
1.4.2 - 2013-06-20
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
Crash when printing some filenames in backtraces.
Allow byebug developers to easily use compilers different from gcc (
1.4.0 - 2013-06-05
Memory leaks causing
byebug to randomly crash.
Use the Debug Inspector API for backtrace information.
1.3.1 - 2013-06-02
Interaction with Rails debugging flag.
Crash when trying to print lines of code containing the character '%'.
linetrace options not working together.
1.3.0 - 2013-05-25
Support colon-delimited include paths in command-line front-end (
1.2.0 - 2013-05-20
Ctrl+C during command line editing (works like pry/irb).
1.1.1 - 2013-05-07
Better help system.
1.1.0 - 2013-04-30
1.0.3 - 2013-04-23
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.
autoreload is set by default now.
Try some thread support (not even close to usable).
1.0.2 - 2013-04-09
backtraces messed up when using both
step and backtrace navigation commands.
autoeval are default settings now.
1.0.1 - 2013-04-06
Byebug not loading properly.
1.0.0 - 2013-03-29
0.0.1 - 2013-03-18
Press h to open a hovercard with more details.