Rails勉強会#40のセッションでも言いましたが、
エラーが発生した時等に表示されるbacktraceの表示は、
コンソールのように上から下に流れる画面上では
通常の逆順のほうが追いやすいと思います。

ということで、ちょっと試しにそのような挙動にしてみました。
以下のようなコードを実行するとテストできます。

ruby>>
class Exception
def set_backtrace(bt)
puts bt.reverse.map{|i|
i.sub(/^([/.\w]+):(\d+)/,
"\e[33m\1\e[m:\e[32m\2\e[m")
}.join("\n")
end
end

def foo
raise StandardError
end

def bar
foo
end

bar
<<--

こんな感じに、エラーが発生した場所に近い順に、
下から上にたどっていく感じに表示されます。

ss

上から下のbacktraceに目が慣れてしまっているので、最初は追いかけにくさを感じますが、一旦慣れてしまえば、スタックが深くて相当スクロールアップしなければエラーの発生源までたどり着けないという場合には良さそうな気がします。

stackという概念のイメージのせいで、新しいものが上の方に来るようになっているのだと思いますが、実用上は新しいものが下にくるこのスタイルの方が便利ではないでしょうか。

posted by genki genki on Thu 23 Apr 2009 at 04:04 with 2 comments
これはただのtraceじゃないですか!!!! ;)
瀧内元気 瀧内元気 04/24 06:30
確かにw

ただのtraceが欲しいですねー