2017-01-23 64 views
3

我使用Ruby 2.2.2,Pry和'pry-byebug'。該continue語句刪除任何觀看變量在pry-byebug如何在Ruby Pry中查看變量?

[1] pry(main)> watch foo 
Watching foo 
watch: foo => 42 
[2] pry(main)> watch 
Listing all watched expressions: 

1: foo => 42 

[3] pry(main)> continue 
[1] pry(main)> watch 
No watched expressions 

continue失去他們使得看着表情很值錢。如果我使用next並代替代碼中的相同點,則觀看的表達式仍然存在;這只是導致問題的continue。目前我甚至找不到watch聲明中的任何文檔,所以我不知道爲什麼會發生這種情況。更一般地說,我只是想在每個Pry提示符上打印一組表達式的值(或者,如果它們自上次打印以來發生了變化,可能會將其打印出來)。我該如何實現這在一個Ruby調試器?

+0

byebug整合到pry是相當黑客。他們並不經常一起玩。之前沒有用過手錶,所以唉這個不得了。也許只需發郵件給byebug的作者? – akuhn

回答

0

你應該可以編寫一個插件,只需在評估後顯示錶達式即可,正好你想要什麼。 Pry plugins

,你可以做一些簡單的像

Pry.hooks.add_hook(:after_eval, "reporter") do |output, binding, pry| 
    $watch ||= [] 
    $watch.each {|block| block.call} 
end 

$watch = [-> { puts "hello"}] 

或沿着那線的東西,每一個新的評估之後將報告「你好」。 (但是,這是未經測試,但目前在手機上)

相關問題