ruby-debug не отображает правильную строку кода при перечислении кода - PullRequest
0 голосов
/ 16 февраля 2012

У меня установлено следующее программное обеспечение

  • Ruby
    • 1.8.6
  • Columnize
    • 0.3.6
  • linecache
    • 0.43
  • ruby-debug
    • 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, отладчик смотрит на что-то похожее на код, где @e и @j.Функции внутри b выполняются правильно, выводят правильные операторы, и я даже могу оценить переменную string.Это проблема с буфером или кешем?Или это проблема с настройками, которую я могу настроить?

1 Ответ

1 голос
/ 16 февраля 2012

что показывает команда "backtrace" отладчика?Это правильно?

Что означает значение

eval caller (). Each {| l |ставит l}

показать?(Если autoeval "on", вам не нужно начальное "eval")

Это правильно?

Если caller () не дает правильную информацию, это проблема в Ruby 1.8.6.Не вдаваясь в подробности, были разные странности в записи строк записи в Ruby.(На самом деле, я не помню, какие версии имеют некоторые проблемы, которые, я знаю, есть.)

...