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命令:

  1. byebug myscript.rb

使用命令

continue, next ,

step:

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

restart n:

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

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

例子:

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

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

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

  1. (byebug) display tri
  2. : tri =
  3. (byebug) set linetrace
  4. linetrace is on
  5. (byebug) set basename
  6. basename is on
  7. (byebug) finish
  8. Tracing: byebug.rb: .upto(n) { |i| tri += i }
  9. : tri =
  10. Tracing: byebug.rb: .upto(n) { |i| tri += i }
  11. : tri =
  12. Tracing: byebug.rb: .upto(n) { |i| tri += i }
  13. : tri =
  14. Tracing: byebug.rb: .upto(n) { |i| tri += i }
  15. : tri =
  16. Tracing: byebug.rb: tri
  17. : 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. Linux 操作系统常用命令

    常用命令详解 ls 常用选项: -a:列出所有文件,包括以.为开头的隐藏文件. -d ; 列出目录本身,并不包含目录里的内容. -h:和-l一起使用,文件大小容易阅读.文件的实际大小 ls -d/ro ...

  2. CF792E Colored Balls【思维】

    题目传送门 考试的时候又想到了小凯的疑惑,真是中毒不浅... 设每一个数都可以被分成若干个$k$和$k+1$的和.数$x$能够被分成若干个$k$和$k+1$的和的充要条件是:$x%k<=floo ...

  3. lua程序设计(第4版)第二章习题

    练习2.1:修改八皇后问题的程序,使其在输出第一个解后即停止运行. 解法:要使得有一个解就返回,首先要获得一个解,然后再返回或停止运行 练习2.2:解决八皇后问题的另一种方式是,先生成1-8之间的所有 ...

  4. vue-cli3 取消eslint 校验代码 真正的解决办法

    在网上找了各种办法都没解决,看了下文档就解决了 关闭vue-cli3.0 报错:eslint-disable-next-line to ignore the next line.   注意我这里是VU ...

  5. 【转帖】Linux图形用户界面:KDE与GNOME的由来

    Linux图形用户界面:KDE与GNOME的由来 置顶 2018年08月11日 15:51:25 hwpipixia 阅读数 4778 https://blog.csdn.net/u013895853 ...

  6. Dijkstra(模板)

    #define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include <cstdio>//sprintf islower isupp ...

  7. (0)c++入门——认识指针与数组——指针即是内存中地址。

    初识指针 首先需要了解一个概念,计算机的内存(或者说是寄存器)都是有地址的. <c++ primer plus>一书P37中提到这样一个概念:为把信息存储在计算机中,程序必须记录3个基本属 ...

  8. luffy后台相关设置

    目录 项目创建 环境 创建项目 重构项目目录 配置开发环境 配置日志 环境变量 dev.py 在写项目直接导入utils文件夹也不''错误提示'' 封装logger dev.py utils/logg ...

  9. Vue生命周期及业务场景使用

    vue里的生命周期是什么? vue实例从创建到销毁的过程称之为vue的生命周期 vue的生命周期各阶段都做了什么? beforeCreate 实例创建前:这个阶段实例的data.methods是读不到 ...

  10. swagger2 Could not resolve pointer: /definitions

    错误信息: Errors Resolver error at paths././query.post.parameters.20.schema.$ref Could not resolve refer ...