[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:553

From: SASADA Koichi <ko1 atdot.net>
Date: Fri, 29 Jul 2005 17:32:08 +0900
Subject: [yarv-dev:553] Re: line no on backtrace

 ささだです。

SASADA Koichi wrote:
>  バックトレースを作り直してたんですが、

def m enum
  enum.map{
    yield
  }
end

begin
  m(1..3){
    raise
  }
rescue => e
  puts e.backtrace
end


 こんなプログラムにおいて、バックトレースは

YARV:------------------------
../test.rb:19:in `raise'
../test.rb:19:in `b@<main>'
../test.rb:13:in `b@m'
../test.rb:12:in `each'
../test.rb:12:in `map'
../test.rb:12:in `m'
../test.rb:18:in `<main>'


Ruby:------------------------
../test.rb:19
../test.rb:18:in `m'
../test.rb:12:in `map'   <---- (*)
../test.rb:12:in `each'
../test.rb:12:in `map'
../test.rb:12:in `m'
../test.rb:18


 こんな感じになります。

 YARV 版の表記は、以下の点が異なります。

1)トップレベルは <main> と表示してあります。
2)b@... は、... 中にある block という意味です。
3)(*) で示した部分は省略してあります
 この部分は、C で書いたブロック(NODE_IFUNC)の呼び出し
4)raise まで表示されちゃってる

 さて、どの辺まで許容されますかね。とりあえず、4) は駄目だと思うんで
Ruby とのマージ後(raise を弄って)変更しますが、その他は別にこのままで
もいーかなー、とも思うんですが、どうでしょうか。3) はあんまり気にする人
が居ないので、いいかなー、とか思っていたり。<main> や b@<main> なんかは
好き好きかもなー、とか。

 どうでしょうか。

-- 
// SASADA Koichi at atdot dot net
//


--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       549 2005-07-29 05:11 [ko1 atdot.net       ] line no on backtrace                    
       550 2005-07-29 07:25 ┣[matz ruby-lang.org  ]                                       
       551 2005-07-29 09:28 ┃┗[nobu.nokada softhome]                                     
       552 2005-07-29 09:45 ┃ ┗[matz ruby-lang.org  ]                                   
->     553 2005-07-29 17:32 ┗[ko1 atdot.net       ]                                       
       557 2005-07-30 16:55  ┗[ko1 atdot.net       ]                                     
       559 2005-07-30 17:27   ┗[matz ruby-lang.org  ]