2011-10-09 58 views
5

我寫了帶有錯誤的代碼。調試Lisp&SLIME,錯誤「無法找到源位置」

例子:

(print (/ 1 0)) 

我想用C-C C-C編譯。 並捕捉堆棧幀的錯誤。

我想在錯誤發生的代碼中看到一行。點擊堆棧框中的'v'行並捕獲錯誤。

Error: Cannot find source location for: #<COMPILED-CODE-LOCATION 
(SB-C::VARARGS-ENTRY /)> 

我該如何去我的代碼行?

截圖enter image description here

+0

你是什麼意思,你用C-C C-C編譯?這個關鍵組合是綁定到slime-compile-file的嗎? –

+0

'C-c C-c' - 在頂點編譯頂層表單。 –

回答

6

你可以從錯誤中看到的,你要跳轉到行,則介於包SB-C,這是SBCL的一部分。如果你沒有SBCL源(你已經安裝二進制或刪除),你應該讓他們(有關您的當前版本SBCL),然後在.sbclrc這樣它們連接起來(根據http://www.cliki.net/SLIME%20Features):

(setf (logical-pathname-translations "SYS") 
     '(("SYS:SRC;**;*.*.*" #P"/opt/sbcl/src/**/*.*") 
     ("SYS:CONTRIB;**;*.*.*" #P"/opt/sbcl/contrib/**/*.*"))) 

或者只是從源代碼編譯SBCL,它會知道它們在哪裏。

+0

對不起,我很困惑,不加正確的錯誤,我解決它。 –

+0

無論如何,解決方案應該是一樣的。 –

+0

在.sbclrc中設置(sb-ext:set-sbcl-source-location「/ path/to/sbcl/source /」)。來源:查找SBCL來源[鏈接](http://xach.livejournal.com/300290.html) –

0

你有(宣佈'(優化調試))在那個線以上的地方?該功能將確保您的系統具有它可以獲取的所有調試數據。