2011-10-09 34 views
5

Tôi đã viết mã có lỗi.Gỡ lỗi Lisp & SLIME, lỗi "Không thể tìm thấy vị trí nguồn"

Ví dụ:

(print (/ 1 0)) 

tôi đang cố gắng biên dịch với C-c C-c. Và bắt lỗi với khung ngăn xếp.

Tôi muốn xem dòng trong mã đã xảy ra lỗi. Đã nhấp vào 'v' trên dòng trong khung ngăn xếp và lỗi bắt được.

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

Làm cách nào tôi có thể chuyển đến dòng trong mã của mình?

Ảnh chụp màn hình: enter image description here

+0

Ý của bạn là gì, bạn đang biên dịch bằng C-c C-c? Đó có phải là sự kết hợp quan trọng ràng buộc với tập tin biên dịch không? –

+0

'C-c C-c' - Biên dịch biểu mẫu cấp cao nhất tại điểm. –

Trả lời

6

Như bạn có thể nhìn thấy từ các lỗi, dòng bạn muốn nhảy đến, là nơi nào đó trong gói SB-C, mà là một phần của SBCL. Nếu bạn không có nguồn SBCL (bạn đã cài đặt nhị phân hoặc xóa chúng), bạn sẽ nhận được chúng (liên quan đến phiên bản SBCL hiện tại của bạn) và sau đó liên kết chúng trong .sbclrc như thế này (theo http://www.cliki.net/SLIME%20Features):

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

Hoặc chỉ biên dịch SBCL từ nguồn và nó sẽ biết, vị trí của chúng.

+0

Xin lỗi, tôi đã nhầm lẫn và không thêm đúng lỗi, tôi sửa lỗi đó. –

+0

Dù sao thì giải pháp cũng giống nhau. –

+0

Thiết lập (sb-ext: set-sbcl-source-location "/ path/to/sbcl/source /") trong .sbclrc. Nguồn: Tìm nguồn SBCL [link] (http://xach.livejournal.com/300290.html) –

0

Bạn có (tuyên bố '(tối ưu hóa gỡ lỗi)) phía trên dòng đó ở đâu đó không? Hàm này sẽ đảm bảo rằng hệ thống của bạn có tất cả dữ liệu gỡ lỗi mà nó có thể nhận được.

Các vấn đề liên quan