0

以下のソフトウェアをインストールしています

  • ルビー
    • 1.8.6
  • カラム化
    • 0.3.6
  • ラインキャッシュ
    • 0.43
  • ルビーデバッグ
    • 0.10.4
  • ruby-debug-base
    • 0.10.4

ほぼ 22,000 行の長さのコードがあります。rdebug がこのコード部分に移動すると、コードは正しく実行されますが、周囲の正しいコード行や現在実行中の行は表示されません。

例えば:

foo.a.b("a string")

メソッドです。以下はコードの例です

#around line 2000
@e
@j
@h    
.
.
.
#around line 6000 
def a
  return obj_that_b_is_called_on
end
.
.
.
#around line 20000
def b(string)
 puts "Hello World"
 puts string
 string = a
end

デバッガーは情報を正しく呼び出してa表示します。ただし、bが呼び出されると、デバッガーは where@e@jare のようなコードを調べます。内部の関数bは正しく実行され、正しいステートメントが出力され、変数を評価することさえできますstring。これはバッファまたはキャッシュの問題ですか? それとも、これは私が構成できる設定の問題ですか?

4

1 に答える 1

1

デバッガの「backtrace」コマンドは何を示しますか? それが正しいか?

の値は何ですか

eval caller().each {|l| l}を置きます

見せる?(自動評価が「オン」の場合、最初の「評価」は必要ありません)

あれは正しいですか?

caller() が正しい情報を提供しない場合、それは Ruby 1.8.6 の問題です。詳細は省きますが、Ruby でのレポート行の記録にはさまざまな奇妙な点がありました。(実際、私が知っている問題のいくつかがどのバージョンにあるのか覚えていません。)

于 2012-02-16T00:49:46.870 に答える