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. LoadRunner 各个指标分析

    我们要监视CPU,内存.硬盘的资源情况.得到以下的参数提供分析的依据.%processor time(processor_total):器消耗的处理器时间数量.如果服务器专用于sql server 可 ...

  2. 使用c++11改写loki的TypeList

    最近看了C++11的一些特性,最感兴趣的是可变模板参数,自动类型推断和匿名函数. Loki中的TypeList,是需要递归定义的,并且需要一个NullType作为尾节点. 可变模板参数使得实现Type ...

  3. echart图表控件配置入门(一)

    现在主流的web图表控件主要有hightchart.fusionchart.echart: echart作为百度前端部门近期推出的一个基于html5的免费图表控件,以其丰富图表类型和良好的兼容性速度得 ...

  4. RPC基础篇

    RPC概念 RPC(Remote Procedure Call Protocol)——远程过程调用协议, 是一种进程间通信方式.它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数 ...

  5. 上传控件swfupload的使用笔记

    1.下载下来的官方domo里不同的例子里会引入各自的JS,注意区分.可以直接拿官方例子来改成自己想要的例子. 2.注意PHP配置文件里也有最大上传文件限制,如果文件太大会上传不成功. 3.如果有问题可 ...

  6. 重复安装Lync导致发布拓扑失败

    重复安装Lync会引起发布拓扑错误,主要原因就是Lync在域控服务器写了东西. 在出错日志中看到guid,查资料说到域控的CN=Trusted Services,CN=RTC Service,CN=S ...

  7. 第二百二十九天 how can I 坚持

    百度-让人更容易的获取信息,腾讯-让人更方便的交流,阿里-让人更方便的消费,每个公司都有自己的使命,每个公司的使命都是围绕着人. 创新-其实应该是在每个人的内心深处都或多或少有一些新的想法,但是什么是 ...

  8. Hadoop概念学习系列之常见的分布式文件系统(二十六)

    常见的分布式文件系统有,GFS.HDFS.Lustre .Ceph .GridFS .mogileFS.TFS.FastDFS等.各自适用于不同的领域.它们都不是系统级的分布式文件系统,而是应用级的分 ...

  9. 支付结果回调v7核心,投保确认接口..

    <?xml version="1.0" encoding="GBK"?> <PACKET type="REQUEST"&g ...

  10. 给windows 7安装文件添加USB3.0驱动

    给Air安装win7进入语言与区域选择之后,发现键盘触摸板都失灵.   原因:新款的 Macbook Air 2013 因为使用了 USB3.0 端口键盘和触摸板设备,所以在安装 Windows 7 ...