Pry:给我看看堆栈

在Rails中使用Pry时,当我在代码binding.pry中打断点时

我想知道我是怎么来到这里的,谁打电话给我的,谁打电话给他们的,等等。但奇怪的是我看不到这个命令。 有人知道吗?

使用pry-stack_explorer插件,它允许您上下移动调用堆栈( down ),显示调用堆栈(使用show-stack )等等:

看这里:

 Frame number: 0/64 From: /Users/johnmair/ruby/rails_projects/personal_site/app/controllers/posts_controller.rb @ line 7 PostsController#index: 5: def index 6: @posts = Post.all => 7: binding.pry 8: end [1] pry(#<PostsController>)> show-stack Showing all accessible frames in stack (65 in total): -- => #0 index <PostsController#index()> #1 [method] send_action <ActionController::ImplicitRender#send_action(method, *args)> #2 [method] process_action <AbstractController::Base#process_action(method_name, *args)> #3 [method] process_action <ActionController::Rendering#process_action(*arg1)> <... clipped ...> [2] pry(#<PostsController>)> up Frame number: 1/64 Frame type: method From: /Users/johnmair/.rvm/gems/ruby-2.0.0-p0/gems/actionpack-3.2.8/lib/action_controller/metal/implicit_render.rb @ line 4 ActionController::ImplicitRender#send_action: 3: def send_action(method, *args) => 4: ret = super 5: default_render unless response_body 6: ret 7: end [3] pry(#<PostsController>)> 

有撬回显示Pry会议的回溯。

还有wtf? 。 哪个节目是最近一次例外的回溯。 添加更多问号以查看更多回溯或感叹号以查看全部内容。

在pry中inputhelp以查看所有其他命令:)

要做到这一点,没有任何pry插件(我正在与pry-stack_explorer麻烦),只要看看caller

我实际上寻找我的项目名称来筛选出所有不相关的铁轨堆栈项目。 例如,如果我的项目名称是archie我会使用:

 caller.select {|line| line.include? "archie" } 

这给了我正在寻找的堆栈跟踪。

更简单的方法是:

 caller.select {|x| x["archie"] } 

其中的作品也是如此。

你可以使用已经在gem库中定义的调用方法。 该方法的返回值将是一个数组。 所以你可以在这堆行中应用数组方法进行search

以下也有助于强大的跟踪。 https://github.com/pry/pry-stack_explorer