অঞ্চলটিকে নিষ্ক্রিয় করা হয়েছে এমন একটি সমস্যা আমি আঘাত করেছি (ক্ষণস্থায়ী-চিহ্ন-মোডে)। ফাংশনটি deactivate-markবলা হয় এবং আমি এটি কোথা থেকে (এবং কেন) বলা হয়েছিল তা জানতে চাই।
আমি চেষ্টা করেছিলাম M-x debug-on-entry RET deactivate-markএবং এটি বন্ধ হয়ে যায় তবে আমি কলকারীকে খুঁজে পাওয়ার কোনও উপায় পাইনি। পুরো প্রদর্শিত স্ট্যাকট্রেস হ'ল:
Debugger entered--entering a function:
* deactivate-mark()
আমি চেষ্টা করেছি M-x edebug-eval-defunকিন্তু এডিবাগ কলকারীকে দেখায় না।
কীভাবে (কোথা থেকে) deactivate-markডাকা হয়েছিল তা আমি কীভাবে জানতে পারি ? আমি ব্যাকট্র্যাস বা স্ট্যাকট্রেস চমত্কার জন্য সন্ধান করছি।
সম্পাদনা করুন:
একটি 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
deactiveate-markএবং আপনার পরামর্শ backtrace-framesফাংশনটিতে যদি ইডব্যাগ আপনার প্রত্যাশাটি না দেখায় তবে পুরো কল স্ট্যাকের একটি দর্শন পেতে ব্যবহার করতে পারেন।
advice-addএবং backtrace-frame। এটি কোনও উপকারে আসেনি।
self-insert-commandএবং "স্ব-সন্নিবেশ-কমান্ড 'সি উত্স কোডে" একটি ইন্টারেক্টিভ অন্তর্নির্মিত ফাংশন। " এটি, এখনও পর্যন্ত উল্লিখিত অন্যান্য আচরণের সাথে একত্রিত করে যে একটিকে ডিবাগ করতে হবে gdb।
emacs -Q, ডিবাগ চালু করুনM-x debug-on-entry deactivate-mark, সক্রিয় চিহ্নC-<SPC>, একটি অক্ষর টাইপ করুন।