2013-08-01 1 views
0

꽤 큰 레일 프로젝트를 디버깅 중이며 이맥스 용 rdebug 라이브러리가 큰 도움이되었습니다. 그러나 하나의 성가심은 잘못된 라인을 보여주는 소스의 포인터였습니다. 아래 예제에서 코드는 # 277 행을 실행 중이지만 (왼손 터미널에 표시된 것처럼) 코드의 포인터는 다음 행 (오른쪽 터미널에 표시됨)에 있습니다.turn-on-rdebug-track-mode는 이맥스에서 잘못된 줄 번호를 보여줍니다.

rdebug track mode points to wrong line in source

사람이이 버그를 추적하는 방법에 대한 아이디어가 있습니까? 나는 이것이 루비 - 디버그 - 엑스트라 패키지에 있다고 생각하지만 나는이 버그를보고하기에 적합한 메일 링리스트를 모른다는 것을 알지 못한다.

답변

1

elisp 또는 emacs 기능을 특히 잘 이해한다고 주장 할 수는 없지만 같은 문제 (및 다른 문제도 있음)가 있으며 ruby-debug-extra 내 포크 this commit에서 해킹을 해결했습니다. 패치는 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)) 
+0

거의 동일한 패치를 만들었습니다. 체크 마크 :) – user341493