আমরা কীভাবে লিনাক্সে ক্র্যাশিং প্রোগ্রামগুলির সমস্যাগুলি সনাক্ত করতে পারি?


12

যদি উইন্ডোজে কোনও অ্যাপ্লিকেশন ক্রাশ হয়ে যায় তবে আমরা কী কী ক্রাশ হয়েছে তা দেখার জন্য প্রশাসনিক সরঞ্জামগুলিতে ইভেন্ট ভিউয়ারটি পরীক্ষা করতে পারি। কখনও কখনও এটি দরকারী তথ্য অন্যদের না, তবে এটি একটি শুরু।
লিনাক্সে যদি কোনও অ্যাপ্লিকেশন (কোনও) ক্র্যাশ করে তবে কী ঘটেছিল তা ট্রেস করতে শুরু করে কীভাবে?
এখানে কিছু কেন্দ্রীয় লগ বা অনুরূপ কিছু আছে?


2
এই জাতীয় জিনিসটি ডিবাগ করার স্ট্যান্ডার্ড উপায় হ'ল ম্যানুয়ালি একটি টার্মিনাল থেকে সমস্যাযুক্ত অ্যাপ্লিকেশন চালু করা। আপনি মুদ্রিত যে কোনও ত্রুটি বার্তা দেখতে পারেন।
টেরডন

2
লিনাক্সের -৪-বিট সংস্করণগুলি ক্র্যাশ হওয়া প্রক্রিয়াটির একটি সংক্ষিপ্ত বিবরণ (যা একটি সংকেতের কারণে মারা গিয়েছিল) লগ করবে /var/log/syslog। প্রক্রিয়া ক্র্যাশ সম্পর্কে ডেমোনকে অবহিত করার জন্য লিনাক্স একটি উপায় সরবরাহ করে। উবুন্টু এর apport এবং Red Hat- র abrt এই ব্যবহার কেন্দ্রীভূত লগিং এবং রিপোর্ট প্রজন্মের সুবিধার প্রদান। সাধারণত একটি কোর ডাম্প সংরক্ষণ করা হয় যাতে আপনি ক্র্যাশ হওয়া প্রোগ্রামটিতে কোনও ডিবাগারকে ডাকতে পারেন।
মার্ক প্লটনিক

আমি এই প্রশ্নটিকে উজ্জীবিত করতাম, তবে ওপি উত্তরটি গ্রহণ বা পোস্ট করে সম্প্রদায়কে সহায়তা করতে চায় বলে মনে হয় না, সুতরাং আমি একটি অনুরূপ প্রশ্ন খুঁজে পাব যা একটি উত্তর গ্রহণ করবে এবং উক্ত হবে, এই আশায় যে এটি হবে অনুসন্ধান ফলাফলের শীর্ষে
উঠুন

উত্তর:


13

এখানে কিছু কেন্দ্রীয় লগ বা অনুরূপ কিছু আছে?

সিস্টেম লগগুলির জন্য স্বাভাবিক স্থান /var/log/। প্রতিটি লগে যা দেওয়া হয় তা সিসলগ কনফিগারেশনের উপর নির্ভর করে তবে সাধারণত লগইন ব্যতীত সমস্ত কিছু যায় /var/log/syslog

এটি কোনও গ্যারান্টি নয় যে পৃথক অ্যাপ্লিকেশনগুলি কোনও সমস্যা হওয়ার পরে সেখানে কোনও চিহ্ন রেখে যাবে। তবে তারা বা শেলটি সম্ভবত স্ট্যান্ডার্ড আউট / স্ট্যান্ডার্ড ত্রুটির প্রবাহগুলিতে কিছুটা থুথু করবে এবং আপনি যদি টার্মিনাল থেকে অগ্রভাগে কোনও ঝামেলা অ্যাপ্লিকেশন চালান তবে আপনি সেই জিনিসটি দেখতে সক্ষম হবেন।


/var/logকোনটি লগ ইন করা উচিত ? কোন লগ ফাইল? কিছু কনভেনশন আছে?
জিম

2
আপনি যদি ক্র্যাশটি ঘটতে পারেন তবে তা করুন, তবে দেখুন / var / লগের অধীনে কোন ফাইলটি সম্প্রতি পরিবর্তন হয়েছে। এর সাথে ls -lartতালিকার সর্বশেষ ফাইলটি সর্বাধিক পরিবর্তিত হয়েছিল।
ডিভন_সি_মিলার

আছে কনভেনশন গুলি - লিনাক্স অনেক জানালা চেয়ে বেশি ভিন্নধর্মী হয়। সিসলগ সিস্টেম লগারকে বোঝায়, তবে সর্বজনীন বাস্তবায়ন হয় না এবং তারতম্যগুলি পরে বিভিন্ন উপায়ে কনফিগার করা যায়। সাধারণ যুক্তিটি হ'ল অ্যাপ্লিকেশন দ্বারা বার্তাগুলি সিসলোগে প্রেরণ করা হয় এবং এই বার্তাগুলি পরে বিভিন্ন ফাইলে সাজানো হয়। যেমনটি উল্লেখ করা হয়েছে, সাধারণত সবকিছু শেষ হয় /var/log/syslogতবে বিভিন্ন ডিস্ট্রো বিভিন্নভাবে কাজ করে। আপনি কোন সিসলগ ব্যবহার করছেন তা যদি আপনি জানেন তবে এটি নির্ধারণের জন্য আপনি এর কনফিগারেশনটি পরীক্ষা করতে পারেন।
স্বর্ণলোক

6

উবুন্টু সেগফোল্টস এ লেখা আছে /var/log/kern.log। আমি এটি পরীক্ষা করেছিলাম যে একটি প্রোগ্রাম তৈরি করে যা সেগফাল্ট করে:

void main() {
    int *a=0;
    *a=0;
}

এটি বিভক্ত হওয়ার পরে এই লাইনটি এখানে ছিল /var/log/kern.log:

a.out[534]: segfault at 0 ip 08048432 sp bfaec8c0 error 6 in a.out[8048000+1000]

1

উবুন্টুতে আপনি যদি একটি .ডেস্কটপ লঞ্চার ফাইল থেকে আপনার অ্যাপ্লিকেশন চালু করে থাকেন তবে Terminal=trueআপনার .ডেস্কটপ ফাইলটিতে বিকল্পটি যুক্ত করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.