https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md

安装:

gem install byebug

使用:

Rails:

直接增加byebug。然后运行bin/rails s, 一旦执行到byebug这行命令,就会收到一个prompt提示。

Ruby:

如果想要debug一个ruby script无需编辑它, 直接在命令行上引用byebug命令:

byebug myscript.rb

使用命令

continue, next ,

step:

当=>指向一个def关键字时,使用step可以进入这个方法内部。

restart n:

n是行号,即重新从第n行执行命令。

其他例子的使用见上面的链接guide.

例子:

# byebug.rb
# The n'th triangle number: triangle(n) = n*(n+1)/2 = 1 + 2 + ... + n
#
def triangle(n)
tri = .upto(n) { |i| tri += i } tri
end t = triangle()
puts t
#进入命令行:
> byebug xxx.rb
当=>指向一个def关键字时,使用step可以进入这个方法内部。
> (byebug)step
[, ] in /Users/byebug.rb
: #
: # The n'th triangle number: triangle(n) = n*(n+1)/2 = 1 + 2 + ... + n
: #
: def triangle(n)
=> : tri =
:
: .upto(n) { |i| tri += i }
:
: tri
: end
(byebug)
(byebug) display tri
: tri =

display tri会始终追踪tri变量。打印在命令行上。

linetrace打开路径追踪, basename设置省略path显示,finish 0 执行这行代码并把追踪结果打印出来。

(byebug) display tri
: tri =
(byebug) set linetrace
linetrace is on
(byebug) set basename
basename is on
(byebug) finish
Tracing: byebug.rb: .upto(n) { |i| tri += i }
: tri =
Tracing: byebug.rb: .upto(n) { |i| tri += i }
: tri =
Tracing: byebug.rb: .upto(n) { |i| tri += i }
: tri =
Tracing: byebug.rb: .upto(n) { |i| tri += i }
: tri =
Tracing: byebug.rb: tri
: tri =

Ruby2.0后版本的debug工具: byebug的更多相关文章

  1. android使用百度地图最新sdk5.0后后代码混淆时,地图无法显示闪退问题

    描述:刚开始遇到这个问题我一步一步去排除,最后发现在初始化地图的时候,代码混淆就有问题了, 问题描述:当跳显示地图的页面APP闪退, 解决对比: 1:对于老版本百度sdk:代码混淆时语句: -libr ...

  2. ruby2.0(rails)以后版本的debug

    很喜欢RUBY(RAILS),认识也好久好久了,但是说实话,从来没用ROR写过什么东西,都是小打小闹,做些自娱自乐的东西,碰到什么问题,基本仔细看看,加上几个LOG就找到原因了,从来没想过要DEBUG ...

  3. xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)

    xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...

  4. 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)

    问题描述 更新游戏SDK到6.1.0.301版本之后,游戏包被审核驳回:在未安装或需更新华为移动服务版本(HMS Core)的手机上,提示安装华为移动服务(HMS Core),点击取消,游戏卡屏.修改 ...

  5. React-Native到0.44版本后Navigator 不能用的问题

    新升级  到0.46版本以后 Navigator 不能使用报错. 'Navigator is deprecated and has been removed from this package. It ...

  6. 【转帖】sysbench使用教程(包含ubuntu自带的0.4版本、0.5版本和最新的1.0版本)

    sysbench使用教程(包含ubuntu自带的0.4版本.0.5版本和最新的1.0版本) 2018年08月10日 09:54:42 cxin917 阅读数 429   版权声明:本文为博主原创文章, ...

  7. [0] 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  8. SpringBoot之整合Redis分析和实现-基于Spring Boot2.0.2版本

    背景介绍 公司最近的新项目在进行技术框架升级,基于的Spring Boot的版本是2.0.2,整合Redis数据库.网上基于2.X版本的整个Redis少之又少,中间踩了不少坑,特此把整合过程记录,以供 ...

  9. 关于Oracle 10.2.0.5 版本应用SCN补丁14121009相关问题

    环境:OEL 5.7 + Oracle 10.2.0.5 背景:Oracle发布的两篇关于2019年6月份将自动调整高版本数据库的SCN COMPATIBILITY的MOS文章引起了很多客户的恐慌,尤 ...

随机推荐

  1. VS2019 安装并破解 DevExpress 19.2 插件

    0.写在最前 本人vs版本为:     1.下载DevExpress 最新版本插件程序 官网下载试用30天地址: https://www.devexpress.com/products/net/con ...

  2. 记录运行时间 StopWatch

  3. Kubernetes 相关镜像pull 不下来问题收集

    1. 可在相关的镜像前添加 keveon 或者 mirrorgooglecontainers 就可以下载镜像, 然后在修改 tag docker pull mirrorgooglecontainers ...

  4. PTA(Advanced Level)1025.PAT Ranking

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  5. 【Python】if __name__ == '__main__' 含义解析

    相信大家在看别人的python程序时,可能会在大部分的程序后看到标题这段代码,这里解释下它的意义.总的来说,这句代码的作用就是既能保证当前的.py文件直接运行,也能保证其可以作为模块被其他.py文件导 ...

  6. Clone()方法详解

    一.克隆的原理与应用 clone在堆上分配内存,分配的内存和源对象(即调用clone方法的对象)相同,然后再使用原对象中对应的各个域,填充新对象的域, 填充完成之后,clone方法返回,一个新的相同的 ...

  7. PAT B1015A1062德才论(25)

    题目描述 宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得 ...

  8. STL pair 常见用法详解

    <算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...

  9. MySQ-表关系-外键-修改表结构-复制表-03

    目录 前言 不合理的表结构(案例) 带来的问题 如何解决问题? 如何确定表关系? 表关系 一对多 多对多 一对一 应用场景 判断表关系最简单的语法 三种关系常见案例 如何建立表关系? 外键 forei ...

  10. vue技术分享之你可能不知道的7个秘密

    本文是vue源码贡献值Chris Fritz在公共场合的一场分享,觉得分享里面有不少东西值得借鉴,虽然有些内容我在工作中也是这么做的,还是把大神的ppt在这里翻译一下,希望给朋友带来一些帮助. 一.善 ...