A simple execution control add-on for Pry.
Compatible with MRI >= 2.1.0, JRuby >= 9.1.3.0.
Teaches Pry about step
, next
, and continue
to create a simple
debugger.
To use, invoke pry
normally:
def some_method
binding.pry # Execution will stop here.
puts 'Hello, World!' # Run 'step' or 'next' in the console to move here.
end
When using JRuby, you also need to run it with the --debug
flag. You can
also add the flag to your JRUBY_OPTS
environment variable for it to apply
when running any ruby command, but do note that even when not making use of
pry
this has a big impact on JRuby performance.
pry-nav
is not yet thread-safe, so only use in single-threaded environments.
Rudimentary support for pry-remote
(>= 0.1.1) is also included.
Ensure pry-remote
is loaded or required before pry-nav
. For example, in a
Gemfile
:
gem 'pry'
gem 'pry-remote'
gem 'pry-nav'
Stepping through code often? Add the following shortcuts to ~/.pryrc
:
Pry.commands.alias_command 'c', 'continue'
Pry.commands.alias_command 's', 'step'
Pry.commands.alias_command 'n', 'next'
Please note that debugging functionality is implemented through
set_trace_func
, which imposes a large performance
penalty.
Alternatives
These work with MRI and pry
Contributors
- Gopal Patel (@nixme)
- John Mair (@banister)
- Conrad Irwin (@ConradIrwin)
- Benjamin R. Haskell (@benizi)
- Jason R. Clark (@jasonrclark)
- Ivo Anjo (@ivoanjo)
- Michael Bianco (@iloveitaly)
Patches and bug reports are welcome. Just send a pull request or file an issue. Project changelog.