2010-04-04 43 views
6

Tôi không biết tại sao tôi gặp phải rất nhiều rắc rối khi bẻ khóa the documentation for the elisp debugger.trình gỡ rối emacs: làm cách nào tôi có thể thoát ra, bước qua?

Tôi thấy nó có một lệnh để "bước vào" (d). Nhưng đối với cuộc sống của tôi, tôi không thể nhìn thấy một bước ra hoặc bước.

Có ai giúp được không?

Nếu tôi có điều này trong backtrace đệm:

... nơi nào tôi đặt con trỏ, và chính những gì tôi gõ, bước ra khỏi các phân tích trạng thái() fn ? bởi vì tôi có nghĩa là, chạy cho đến khi fn đó trả về, và sau đó dừng lại trong trình gỡ rối một lần nữa.

Trả lời

1

'c' và 'j' hoạt động giống như bước ra và bước ra. Khi một khung được gắn cờ (được biểu thị bằng "*") gặp phải (các tài liệu nói "đã thoát" nhưng điều này dường như không phải là cách trình gỡ rối hoạt động), trình gỡ lỗi sẽ được nhập lại. Khi khung trên cùng được gắn cờ, chúng hoạt động giống như bước trên; khi nó không phải là, họ làm việc như bước ra.

Trong backtrace ví dụ của bạn, nhập hoặc sẽ thoát ra khỏi line-beginning-position vào c-parse-state. Cờ khung nên rõ ràng, do đó, nhập lần thứ hai phải bước ra khỏi c-parse-state.

4

Khi gỡ lỗi, tôi nhấn ? và tôi thấy:

o    edebug-step-out 
f    edebug-forward-sexp 
h    edebug-goto-here 

Tôi tin o (nó là step-out) và f (như bước lên) là những gì bạn đang tìm kiếm, mặc dù tôi cũng tìm h cực kỳ hữu ích.

+0

Tôi biết bạn sẽ thấy khó tin, nhưng tôi đã sử dụng gỡ lỗi, không phải edebug. Thật la khac biệt! cảm ơn vì tiền hỗ trợ. – Cheeso

+0

@Cheeso, ha! Tôi thậm chí không biết có một 'M-x debug' cho đến câu hỏi của bạn. –

+0

Bạn tốt hơn, không biết. gỡ lỗi là không thể sử dụng. – Cheeso

0

Hm. Tôi, trước hết, thích debug để edebug, nhưng để mỗi riêng mình ...

Đối với debug, tôi sử dụng d, c, e, và q.

Nếu bạn sử dụng debug, một điều cần lưu ý, có thể tiết kiệm thời gian và công sức, là khi bạn thấy cuộc gọi macro (bắt đầu bằng #), bạn có thể chỉ cần nhấn c để mở rộng macro - có bình thường không có ý nghĩa trong đào vào mã mở rộng vĩ mô (trừ khi bạn đã viết vĩ mô và bạn đang cố gắng gỡ lỗi nó).

Cụ thể, đối với dolist, có hai cấp macro mở rộng để bỏ qua sử dụng c: một cho dolist và một cho block.

HTH.

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