1
จะทราบได้อย่างไรว่าฟังก์ชันใดถูกเรียกใช้จาก (backtrace / stacktrace)
ฉันพบปัญหาว่าภูมิภาคปิดใช้งาน (ในโหมดเครื่องหมายชั่วคราว) deactivate-markมีการเรียกใช้ฟังก์ชั่นและฉันต้องการทราบว่าถูกเรียกใช้จากที่ไหน (และทำไม) ฉันพยายามM-x debug-on-entry RET deactivate-markแล้วก็หยุด แต่ฉันไม่พบวิธีการโทรหา stacktrace ที่แสดงทั้งหมดคือ: Debugger entered--entering a function: * deactivate-mark() ฉันพยายามM-x edebug-eval-defunแต่ Edebug ไม่แสดงผู้โทรด้วย ฉันจะทราบได้อย่างไรว่าเหตุใดจึงdeactivate-markมีการเรียก(จากที่ใด) ฉันกำลังมองหาฟังก์ชั่น backtrace หรือ stacktrace แก้ไข: advice-addเคล็ดลับ: (defun message-show-backtrace () (message "%s" (backtrace-frame 10))) (advice-add deactivate-mark :before #'message-show-backtrace) ผลิตในnil*Messages* แก้ไข: ข้อมูลเพิ่มเติมเกี่ยวกับdeactivate-mark: http://emacshorrors.com/posts/deactivate-mark.html