2013-03-08 15 views

cevap

41

pry-stack_explorer eklentiyi kullanın diğer tüm komutları :) görmek), vb:

buraya bakın:

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>)> 
75

Pry oturumunun backtrace'ini gösteren pry-backtrace var.

Ayrıca wtf? da vardır. En son istisnanın backtrace hangi gösterisi. Hepsini görmek için backtrace veya ünlem işareti daha fazla görüntülemek için daha fazla soru işaretleri ekleyin. gözetlemek içinde

Tip helpshow-stack ile (çağrı yığını görüntüler, size (up ve down ile) yukarı taşımak ve çağrı yığını aşağı sağlayan,

+1

'gözetlemek-backtrace' Tamam, ama' gözetlemek-stack_explorer' eklenti yol daha güçlüdür – horseyguy

+7

(başka taş, bir eklenti olsa) ama aslında tüm bu özellikleri kullanmak yok bazen :) – nXqd

+3

Teşekkürler wtf bilmiyordum? Komut! –

66

sadecebakmak, (ı gözetlemek-stack_explorer konusunda sıkıntılı başlamıştı) herhangi gözetlemek eklenti olmadan bunu yapmak için.

Aslında tüm alakasız raylar yığın öğelerini filtrelemek için proje adımı arıyorum. Benim proje adı archie olsaydı Örneğin, ben kullanırım: Bana arıyorum yığın izleme verir

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

.

Daha kısa bir yol olacaktır: gibi iyi çalışır

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

.

+0

Bu harika. Ben gözetlemek çağrı yığını dahil çünkü rahatsız oldu ve sadece özellikle benim uygulamadan gelen ne istedim. 1! – cdpalmer

+3

Mükemmel. Buna girmek için tmux'a bir anahtar-combo ekledim ('B' gönderme-tuşlarını '...^M'), bir "reddet" kullanarak daha geneldir: '' 'caller.reject {| x | x ["satıcı/paket"] || x ["/. rbenv/versions /"]} '' ' – hoodslide

+2

Ruby topluluğu için doğru olan, yalnızca bazı yararlı yanıtlar bazı eklentileri yüklemek için tavsiye altında gömülüdür. –

1

Gem kitaplığında önceden tanımlanmış arayan yöntemini kullanabilirsiniz. Bu yöntemin dönüş değeri bir dizi olacaktır. Bu nedenle, etkinlik satır

'daki arama için dizi yöntemlerini uygulayabilirsiniz. Aşağıda, güçlü izleme için yararlıdır. https://github.com/pry/pry-stack_explorer