turn-on-rdebug-track-mode在emacs中显示错误的行号

时间:2013-08-01 17:05:54

标签: ruby debugging emacs rdebug

我正在调试一个相当大的rails项目,我发现emacs的rdebug库是一个巨大的帮助。然而,一个烦恼就是源中的指针显示错误的一行。在下面的示例中,代码正在执行第277行(如左侧终端所示),但代码中的指针位于下一行(显示在右侧终端中)。

rdebug track mode points to wrong line in source

有没有人对如何追踪此错误有任何想法?我认为这是在ruby-debug-extras包中,但我没有对emacs进行任何黑客攻击,所以我甚至不知道正确的邮件列表来报告这个错误。

1 个答案:

答案 0 :(得分:1)

我不能声称理解elisp或emacs功能特别好,但我遇到了同样的问题(以及其他一些问题),并在我的ruby-debug-的分支this commit中找到了一个hack额外。补丁只是将lineno变量调整为一个:

--- a/emacs/rdebug-track.el
+++ b/emacs/rdebug-track.el
@@ -212,8 +212,8 @@ problem as best as we can determine."
       "line number cue not found"
     ;;else
     (let* ((filename (match-string rdebug-marker-regexp-file-group block-str))
-           (lineno (string-to-number
-           (match-string rdebug-marker-regexp-line-group block-str)))
+           (lineno (- (string-to-number
+                    (match-string rdebug-marker-regexp-line-group block-str)) 1))