অঞ্চলটিকে নিষ্ক্রিয় করা হয়েছে এমন একটি সমস্যা আমি আঘাত করেছি (ক্ষণস্থায়ী-চিহ্ন-মোডে)। ফাংশনটি 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>
, একটি অক্ষর টাইপ করুন।