1. ruby-debug, ruby-debug19

没人维护,bug多。Ruby 1.9.3后不推荐使用

2. debugger

ruby 1.9.3后的选择,功能强大,缺点是没有语法高亮。

项目中引用debugger方法

修改Gemfile

1
2
3
group :development, :test do
gem 'debugger'
end

在需要设置断点的地方:

1
require 'debugger'; debugger

查看源文件方法

1
2
3
list       #往后翻看代码
list- [n] #往前翻看代码
list= #查看当前运行处代码

list可以缩写为l

查看方法栈(stack frames)

1
2
3
backtrace/where               # 查看
frame [n] # 跳到指定stack frames
up [n] (缩写u) 和 down [n] # 在stack frames层里来回切换

执行控制

1
2
3
4
next           # 执行下一行,遇到方法调用不进入。
step # 执行一步,遇到方法调用进入。
continue/c # 执行到下一个断点。
finish [n] # 执行到指定的frame才返回。注意编号是从下往上数。

其它常用命令

1
2
help
info

3. pry

替代irb,我最喜欢的是语法高亮。

1
2
3
4
5
6
7
8
help
cd ..
whereami
self
ls
show-doc
show-method
edit-method

pry-nav

pry只是替代erb,并不能调试rails,加上rails后即可pry-nav。 增加3种基本调试指令。

1
2
3
step
next
continue

pry-stack_explorer

Pry的插件,用于查看方法栈

1
2
3
4
5
6
7
(pry) main: 0> show-stack
Showing all accessible frames in stack (5 in total):
--
=> #0 [method] gamma
#1 [method] beta
#2 [method] alpha

使用pry调试rails项目

修改Gemfile

1
2
3
4
5
group :development, :test do
gem 'pry'
gem 'pry-nav'
gem 'pry-stack_explorer' # 如果不查看方法栈,可以省略
end

在需要设置断点的地方:

1
binding.pry

4. 参考

https://github.com/cldwalker/debugger

https://github.com/pry/pry

https://github.com/pry/pry-stack_explorer

http://guides.rubyonrails.org/debugging_rails_applications.html

rails 调试的更多相关文章

  1. rails调试

    1.debugger() 测试结果来看,在Controller中加入后,可在后台中断调试如下 通常输出 log 是输出到终端(启动 rails server 的终端): # 控制器里 logger.i ...

  2. Ruby Rails学习中:调试信息和 Rails 的三种环境,Users 资源,调试器,Gravatar 头像和侧边栏

    注册 一.调试信息和 Rails 环境 现在咱们要实现的用户资料页面是我们这个应用中第一个真正意义上的动态页面.虽然视图的代码不会动态改变, 不过每个用户资料页面显示的内容却是从数据库中读取的.添加动 ...

  3. Ruby on Rails 接口无法调试的问题

    1. 客户端 ip 与服务器 ip需要在同一网段 2. 如果 rails 版本是4.2及以上需要通过 rails s -b 0.0.0.0启动 3. 跑服务的mac需要关闭防火墙

  4. RubyMine不能调试Rails项目的问题

    需要安装debase gem,而且在项目的GemFile中禁用byebug

  5. ruby on rails 生产环境调试项目日志查看

    1.项目目录:log/production.log 2.nginx日志:/opt/nginx/logs 生产环境下做的任何更改都要重启服务器 重启 sudo kill $(cat /opt/nginx ...

  6. Rails的三种环境----开发环境,生产环境和测试环境

    Rails 的三个环境 Rails 的应用程序预设提供了三种不同的执行模式: development environment 开发模式,用在你的开发的时候 test environment 测试模式, ...

  7. apache服务器安装以及使用passenger插件部署rails应用

    小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache. 安装apache服务器 命令是sudo apt-get install apache2 安装passenger插件 安 ...

  8. rails日记1

    assert_select "div" <div>foobar</div>assert_select "div", "foob ...

  9. 管理不同版本ruby和rails的利器——rvm

    近年来,ruby on rails逐渐火了起来,我想各位码农早就耳闻,特别是那些做B/S项目的童鞋,早就想跃跃一试了. 笔者也是初次接触ruby on rails ,我想,对于初学者来说,最好的学习方 ...

随机推荐

  1. SqlDataReader对象的NextResult方法读取存储过程多个结果集

    如上图,我这里有返回4个记录集,分别表示 发送的总数,成功数,失败数,以及所有的记录集,那么我怎么去获取呢? 如果我第二个记录集 第三个记录集 都是多行的话,怎么办?可以参考下面这张图

  2. Php 笔记1-----request和 response

    不能大于2KB 第一次学习 php,  因为以前习惯了 .net, 所以 刚开始总是按照.net的  思路去思考, 怎么获取 客户端发过来的  request对象啊,  怎么设置response啊.. ...

  3. div模拟的下拉框特效

    随笔- 4 文章- 0 评论- 0 ? <style type="text/css"> body, ul, li { margin: 0; padding: 0; fo ...

  4. Prototype入门

    官网地址:http://prototypejs.org/ Prototype降低了客户端web编程的复杂性.为了解决现实存在的一些问题,Prototype对浏览器的脚本环境做了一些扩展,对原先笨拙的A ...

  5. qqq

    http://blog.sina.com.cn/s/blog_6f0774010100wawd.html http://www.2cto.com/kf/201302/189135.html http: ...

  6. Java自带webservice

    http://blog.sina.com.cn/s/blog_61d8d96401013tmp.html 1.首先创建一个Java项目,作为Web services Endpoint. 2.创建一个H ...

  7. navigationController 之间的切换

    项目要实现从一个Navigation 下push出的第N层controller后 立即切换到另一个 Navigation下 例如:在微信的通讯录Nav中选择一个好友,进入好友的详细资料,点击发消息按钮 ...

  8. 《Java数据结构与算法》笔记-CH5-链表-2单链表,增加根据关键字查找和删除

    /** * Link节点 有数据项和next指向下一个Link引用 */ class Link { private int iData;// 数据 private double dData;// 数据 ...

  9. [WinForm] 使用 WebBrowser 操作 HTML 頁面的 Element-摘自网络

    前言 在 Window Form 應用程式如果需要瀏覽網頁時可以崁入 WebBrowser 控制項,但如果需要操作崁入的 HTML 的網頁元素,就需要額外的操作,以下紀錄幾種操作 HTML 元素的方法 ...

  10. 第三百五十四天 how can I 坚持

    你的问题主要在于:读书不多而买书太多:读书太少又特爱思考,还话唠.. 2012年毕业,辗转无锡,上海,最后来到了北京,逛了北京, 2013年,清明去爬了长城,从天通苑搬到了甜水园, 2014年,爬了泰 ...