ruby-debug在列出代码时没有显示正确的代码行

时间:2012-02-15 23:57:48

标签: ruby ruby-debug

我安装了以下软件

  • 红宝石
    • 1.8.6
  • Columnize
    • 0.3.6
  • linecache
    • 0.43
  • 红宝石调试
    • 0.10.4
  • 红宝石调试基
    • 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 个答案:

答案 0 :(得分:1)

调试器"回溯"命令秀? 这是对的吗?

的价值是什么?

eval caller()。每个{| l |把l}

显示? (如果autoeval是" on",你不需要初始" eval")

这是对的吗?

如果caller()没有提供正确的信息,那么它就是Ruby 1.8.6中的一个问题。没有详细说明,Ruby中的报告行记录存在各种奇怪之处。 (实际上,我不记得哪些版本存在我知道的一些问题。)