首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么`binding.pry`停在错误的地方?

为什么`binding.pry`停在错误的地方?
EN

Stack Overflow用户
提问于 2015-01-26 12:29:51
回答 1查看 1.4K关注 0票数 1

由于某些原因,当我使用binding.pry设置一个断点时,程序会在一个完全不同的地方停止运行(而且外星正在寻找!)地点。我做错了吗?

Gemfile (简写)

代码语言:javascript
复制
gem "rails", "~> 4.1"
gem "pry"
gem "pry-rails"
gem "pry-doc"
gem "pry-stack_explorer"
gem "pry-byebug"

场景

断点:

代码语言:javascript
复制
class SomeController < Application controller
  before_filter :filter
  ...
  def filter
    assignment = SkillAssignment.where(day: selected_date).first

    if assignment
      @day_skill = assignment.skill
      @day_description = @day_skill.description
    end

    binding.pry
  end
end

我登陆的地方(使用show-source__):

代码语言:javascript
复制
[1] pry(ActiveSupport::Callbacks::Filters::Before)> show-source

From: /home/yan-foto/workspaces/my-app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb @ line 156:
Owner: #<Class:ActiveSupport::Callbacks::Filters::Before>
Visibility: private
Number of lines: 16

def self.halting(next_callback, user_callback, halted_lambda, filter)
  lambda { |env|
    target = env.target
    value  = env.value
    halted = env.halted

    unless halted
      result = user_callback.call target, value
      env.halted = halted_lambda.call(target, result)
      if env.halted
        target.send :halted_callback_hook, filter
      end
    end
    next_callback.call env
  }
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-26 13:37:51

感谢“Manuel”和“Anthony”,我现在知道这个问题是由错误 in pry-byebug引起的。不幸的是,这个问题似乎没有在开发人员在GitHub中提到的一开始就得到解决。

目前的情况是,我几乎从来没有使用过撬-byebug,所以我觉得没有动力的人,我不使用的软件。:(

如果您想让binding.pry位于最后一行,一个简单的解决方法是编写如下内容:

代码语言:javascript
复制
def myMethod
  # magic
  binding.pry
  1 + 1
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28150164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档