সেন্ডিনেলগুলিতে এবং ফন্ট-লক চলাকালীন ত্রুটিগুলি কীভাবে ডিবাগ করা যায়


10

প্রসেস সেন্ডিনেলের ভিতরে বা ফন্ট-লক করার সময় কোনও ত্রুটি দেখা দেয়, তখন ইমাকস debug-on-errorপূর্ববর্তী সক্রিয় থাকা সত্ত্বেও ব্যাকট্র্যাস প্রদর্শন করে না ।

আমি বুঝতে পারি কেন এই ত্রুটিগুলি ধরা পড়ে, ব্যাকট্র্যাসটি উপস্থাপন করার চেষ্টা করার সময় একই ত্রুটি আবার ট্রিগার হতে পারে। তবে আমি যখন ত্রুটিটি ডিবাগ করতে চাই তখন এটি খুব বেশি সহায়ক হয় না। আমি বরং ইমাসকে এ থেকে কাজ করার চেয়ে প্রতিক্রিয়াবিহীন হওয়ার ঝুঁকি তুলব:

error in process sentinel: Wrong type argument: stringp, nil

সর্বোপরি আমি প্রথম বার শুরু করতে পারি, যদি প্রথম পাগল হওয়া শুরু করে। আরও অনেকগুলি প্রসঙ্গ সাহায্য করবে যখন এমন অনেক জায়গা রয়েছে যেখানে তাত্ত্বিকভাবে কোনও সেন্ডিনেলে ঘটতে পারে।

সুতরাং ইম্যাকসকে কীভাবে ব্যাকট্রেস দেখাতে বাধ্য করতে পারি এমনকি এমন ক্ষেত্রেও যেখানে debug-on-errorকোনও প্রভাব নেই?


1
আমি emacs.stackexchange.com/questions/3552/… দেখেছি তবে মনে করি সাধারণভাবে এই সম্পর্কে একটি প্রশ্ন হওয়া উচিত, কেবল একটি বিশেষ ক্ষেত্রে নয়। এছাড়াও আমি সত্যিই আশা করি "প্রিন্টফ ব্যবহার" এর একমাত্র উত্তর নয়, কারণ এটি আমি অতীতে ব্যবহার করেছি এবং এটি সন্তোষজনক নয়, বিশেষত যদি ত্রুটিটি "অবৈধ মুখের রেফারেন্স: কিছু-মুখ-যা-আমি-একেবারে-জানি -অস্তিত্ববাদী ", যা আমি ইনস্টল করা প্রতিটি প্যাকেজ থেকে বেশিরভাগই ট্রিগার হতে পারে।
তারসিউস

ইউআরএল এই প্রশ্নের দিকে নির্দেশ করে এবং তাই আপনার মন্তব্যে বরং বিভ্রান্ত করছে, এটি ইচ্ছাকৃত বা আপনার পক্ষে কোনও ত্রুটি?
ওয়াসমাস

এটিই আমি বোঝাতে চাইছি ইস্যু: ttp: //emacs.stackexchange.com/questions/1045/how-to-debug-startup-problem-if-debug-init-has-no-efect
tarsius

লিঙ্কটি তারসিয়াসের উদ্দেশ্য: emacs.stackexchange.com/questions/1045/… u ug- init-এর কোনও প্রভাব নেই
dcorking

উত্তর:


10

প্রক্রিয়া প্রেরণকারীদের জন্য, আমি মনে করি না এর কোনও ভাল কারণ আছে। IOW আমি মনে করি এটি কেবল একটি অনুপস্থিত বৈশিষ্ট্য, তাই আমি আপনাকে পরামর্শ দিই M-x report-emacs-bug

ফন্ট-লকের জন্য, বিষয়টি আরও জটিল কারণ সত্যই যা ঘটে তা হ'ল জিট-লক চলাকালীন, পুনর্নির্মাণের সময় ত্রুটিটি ট্রিগার করা হয়েছিল এবং আমরা সেই মুহুর্তে সহজেই ডিবাগারে প্রবেশ করতে পারি না (আইআইআরসি কিছু সময়ে গার্ড তৈরি করার চেষ্টা করেছিল) এটি কাজ করে, তবে কিছু গুরুতর সমস্যা ছিল, এখনও)। সুতরাং আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটিতে এটি ডিবাগ করতে পারেন:

  • M-x jit-lock-debug-mode যা জিট-লকটিকে ডাইরডিসপ্লেয়ের ঠিক পরে চালাতে পরিবর্তন করে, যাতে আমরা ডিবাগারে প্রবেশ করতে পারি।
  • M-: (setq font-lock-support-mode nil) RETএবং তারপরে + পুনরায় সক্ষম ফন্ট-লকটি অক্ষম করুন। এইভাবে ফন্ট-লকটি আর জিট-লক ব্যবহার করে না, সুতরাং এটি পরবর্তী পুনর্নির্মাণের পরিবর্তে ব্যবহারকারীর কমান্ড চলাকালীন।

প্রকৃতপক্ষে, debug-on-errorপ্রক্রিয়া সেন্ডিনেলগুলিতে দুর্দান্ত কাজ করছে বলে মনে হচ্ছে।
স্টিফান

@ টারসিয়াস - দয়া করে আপনার ডিবাগগুলি ইস্যুতে একটি লিঙ্ক পোস্ট করুন
dcorking

তারসিয়াসের বৈশিষ্ট্যটির অনুরোধটি 19432 যেখানে এটি অপ্রগ্রহণযোগ্য হিসাবে ট্যাগ করা হয়েছে। স্টেফান মননিয়ার সেখানে একটি কার্যপ্রণালী পোস্ট করেছেন যা --evalতার চেয়ে বেশি ব্যবহার করে --debug-init । এছাড়াও তার .emacs.d
কর্মসূচী

1
@ ডকার্কিং: না, বাগ # 19432 তে আমি কোনও "ওয়ার্কআরাউন্ড" পোস্ট করি নি তবে তার বাগের পুনরুত্পাদন করার ব্যর্থ চেষ্টা করেছি। আপনি কেন আপনার সমস্যার পুনরুত্পাদন করার একটি রেসিপি পাঠান না?
স্টেফান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.