হিমায়িত ইম্যাকস ডিবাগ করা


48

আমি আমার ই-মেইলের জন্য মেঘ ব্যবহার করছি। আমার এসএমটিপি-র জন্য আমার ইমেল সরবরাহকারীর সাথে টিএলএস ব্যবহার করতে হবে। যাইহোক, আমি যখন এটি চাওয়ার চেষ্টা করি তখন ইমাকগুলি হিমশীতল।

আমি ইমাস প্যাকেজগুলি সম্পর্কে আরও জানার জন্য এই সুযোগটি নিতে চাই। আমি কীভাবে এই সমস্যাটি ডিবাগ করতে যাব? কমন লিস্পের মতো কি কোনও বিল্ট-ইন ডিবাগার রয়েছে? আমি লগিং ব্যবহার করতে পারি?


3
আপনি কীভাবে "অনুরোধ করেন"? যদি এটি লিস্পে সংজ্ঞায়িত ইম্যাক্স কমান্ড ব্যবহার করে হয় তবে আপনি (1) কমান্ডটি সংজ্ঞায়িত করে উত্স কোডটি লোড করতে পারেন, (২) ব্যবহার করুন M-x debug-on-entry THE-COMMAND, তারপরে ডিবাগারের সাহায্যে পদক্ষেপ নিতে পারেন d(বা কখনও কখনও cকিছু পদক্ষেপ ছাড়তে পারেন)। উত্স কোডটি অন্য ফ্রেমে খোলা রাখুন, যাতে আপনি ডিবাগার যা করছেন তা অনুসরণ করতে পারেন। প্রতিবেদন তুমি এখানে কি দেখতে বা, যদি আপনি মনে হয় এটা একটি এ গিয়ে Emacs বাগ প্রস্তাব দেওয়া ব্যবহার M-x report-emacs-bug
ড্র

উত্তর:


44

অবলম্বন করার আগে gdb, আপনি যদি ইউনিক্স-ওয়াই অপারেটিং সিস্টেম ব্যবহার করছেন, আপনি অন্য উত্তরে উল্লিখিত ফাইলটিতে SIGUSR2নথিভুক্ত মত ইমাস প্রসেসে প্রেরণ চেষ্টা করতে পারেন DEBUG

$ kill -SIGUSR2 <emacs_pid_goes_here>

এটি ইমাসকে তার বর্তমান লুপটি লিস্প ডিবাগারের বাইরে বের করার চেষ্টা করবে।

অথবা ম্যানুয়ালি ইমাস পিড টাইপ না করে এই একটি লাইনার ব্যবহার করুন:

$ ps aux | grep -ie emacs | grep -v grep | awk '{print $2}' | xargs kill -SIGUSR2

বিকল্পভাবে, যদি killallপাওয়া যায়:

$ killall -USR2 emacs

1
এটি দুবার করতে হয়েছিল (ভাল, আমি আবার চেষ্টা করার আগে 1 সেকেন্ডের বেশি অপেক্ষা করতে পারতাম :-)। যাইহোক, এটি সমস্যাটি নিখুঁত করেছে (একটি দীর্ঘ লাইনের জন্য একটি ফন্ট-লক প্রসেসিং খুব ধীর)।
স্টাফেন গৌরিচন

হরফ-লকটি ইমাকগুলি হ্যাঙ্গ করার জন্য পরিচিত - যদি কোনও ম্যাচকারী ট্রিগার করে তবে পয়েন্টটি সামনে না সরায়, এটি চিরতরে পুনরুদ্ধার করবে।
লিন্ডাইড্যান্সার

বাহ, যে আশ্চর্যজনক ছিল। আমার সমস্যার কারণ কী তা এখনও নিশ্চিত নয় তবে সেই কৌশলটি জীবন রক্ষাকারী, আপনাকে ধন্যবাদ!
ম্যাট

3
আমার সিস্টেমে অনিলাইনারটিকে 'কিল্লা-ইউএসআর 2 ইম্যাকস' এ সরল করা যেতে পারে (যদি আপনার একাধিক ইমাস প্রক্রিয়া অবশ্যই থাকে তবে এড়ানো উচিত)।
ইয়ংফ্রোগ

1
Htop (সুপারিশ en.wikipedia.org/wiki/Htop এই জন্য)। /অনুসন্ধান emacsএবং kসিগন্যাল প্রেরণ। কোনও ম্যাকের ক্রিয়াকলাপ পর্যবেক্ষণ এটিও করতে পারে (মেনু থেকে: দেখুন | প্রক্রিয়াতে সংকেত প্রেরণ করুন)।
লাসি

36

হিট করার সময় যদি স্থিরতা চলে যায় C-gতবে আপনি বিল্ট-ইন ডিবাগারটি ব্যবহার করতে পারেন। M-x toggle-debug-on-quitবার্তা প্রেরণের আগে টাইপ করুন, হিমশীতল C-gহলে হিট করুন এবং আগত *Backtrace*বাফারটি পরীক্ষা করুন ।

যদি C-gসহায়তা না করে, তবে সম্ভবত সি কোডের মধ্যে হিমশীতল ঘটে এবং আপনার একটি বহিরাগত ডিবাগার যেমন ব্যবহার করতে হবে gdb। ফাইলটি C-h C-dদেখতে হিট DEBUGকরুন যা এটি কীভাবে করার বিষয়ে কিছু ইঙ্গিত দেয়। (আপনি ইমাস রিপোজিটরি ওয়েব ইন্টারফেসেও ডিইবিইউজি ফাইলটি পড়তে পারেন )) এই উত্তরটিgdb ইম্যাক্সের সাহায্যে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আরও বিশদে যায় ।


আপনি আঘাত থাকতে পারে C-gবেশ কয়েকবার: C-g C-g C-g
ড্র

@ ড্র আমি আরও লক্ষ্য করেছি যে এটি বেশ কয়েকবার আঘাত করা প্রয়োজন। তুমি কি জানো কেন?
উইলফ্রেড হিউজেস

2
হ্যাঁ. দেখুন এ গিয়ে Emacs ম্যানুয়াল, নোডQuitting । কীভাবে পেলাম? C-h r i, তারপরে "সিজি" টাইপ করুন এবং হিট করুন RET
আঁকুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.