จะยกเลิก `edebug-defun 'ได้อย่างไร?


13

ฉันจะยกเลิกผลกระทบของได้edebug-defunอย่างไร กล่าวอีกนัยหนึ่งฉันจะยกเลิกคำสั่งที่ทำให้เกิดedebugการเข้าสู่โหมดการแก้จุดบกพร่องเมื่อมีการเรียกใช้ฟังก์ชั่นเฉพาะ?

นอกจากนี้ฉันอยากรู้ว่าคำตอบของคำถามนี้อยู่ที่ไหนในเอกสาร ฉันค้นหามันนานเกินกว่าที่คิดว่าจำเป็น

คำตอบ:


16

จาก(info "(elisp) Instrumenting"):

   To remove instrumentation from a definition, simply re-evaluate its
definition in a way that does not instrument.  There are two ways of
evaluating forms that never instrument them: from a file with `load',
and from the minibuffer with `eval-expression' (`M-:').

IOW วิธีที่ง่ายที่สุดคือใช้งานC-M-xโดยไม่มีอาร์กิวเมนต์นำหน้า (หรือใช้อาร์กิวเมนต์นำหน้าหากคุณedebug-all-defsตั้งไว้)


ขอบคุณ! หลังจากเห็นคำตอบแล้วตอนนี้ฉันมั่นใจอย่างยิ่งว่าวิธีเดียวที่ฉันจะได้พบคำตอบคือการค้นหาเชิงเส้นผ่านเอกสาร Emacs และ Elisp ทั้งหมด
kjo

FWIW ฉันหวังว่าจะมีวิธีที่ง่ายในการลบเครื่องมือออกจากคำจำกัดความทั้งหมด (แม้ว่าจะกระจัดกระจายไปทั่วหลายไฟล์) พร้อมกัน แต่ฉันไม่รู้
YoungFrog

@kjo ฉันพบมันโดยเปิดส่วน edebug ในคู่มือ elisp และเรียกดูส่วนต่างๆ รู้ว่า "ผลกระทบของ edebug-defun" เรียกว่า "เครื่องมือ" ช่วยอย่างแน่นอน
YoungFrog

2
@kjo นอกจากนี้หากคุณรายงานข้อผิดพลาด ( M-x report-emacs-bug) โดยบอกสิ่งที่คุณพยายามจริง ๆ เมื่อค้นหาคำตอบของคุณเอกสารนั้นจะสามารถปรับปรุงได้
YoungFrog

9

กล่าวอีกนัยหนึ่งฉันจะยกเลิกคำสั่งที่ทำให้ edebug เพื่อเข้าสู่โหมดการแก้จุดบกพร่องเมื่อมีการเรียกใช้ฟังก์ชั่นเฉพาะ?

คุณจะได้รับผลกระทบนี้โดยไม่ต้องถอดวัดโดยการตั้งค่าไปedebug-initial-mode goวิธีนี้คุณจะหยุดทำงานใน edebug หากมีชุดเบรกพอยต์ ในฐานะของ Emacs 25.1 คุณสามารถทำสิ่งนี้ได้อย่างรวดเร็วด้วยedebug-set-initial-mode:C-x C-a C-m g

(info "(elisp) Edebug Execution Modes")

‘g’
     Go: run until the next breakpoint (‘edebug-go-mode’).  *Note
     Breakpoints::.

[ ... ]

When you enter a new Edebug level, the initial execution mode comes
from the value of the variable ‘edebug-initial-mode’ (*note Edebug
Options::).  By default, this specifies step mode.

[ ... ]

Command: edebug-set-initial-mode

This command, bound to C-x C-a C-m, sets edebug-initial-mode. It
prompts you for a key to indicate the mode. You should enter one of
the eight keys listed above, which sets the corresponding mode.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.