2011-09-05 12 views
5

एक बहुप्रचारित एप्लिकेशन लटकता है और यह किसी भी आदेश का जवाब नहीं दे रहा है।लिनक्स में एक बहुप्रचारित लटका प्रक्रिया को कैसे डिबग करें?

  1. gdb के लिए एक प्रक्रिया संलग्न करें: मैं भाग्य के बिना निम्नलिखित बातें की कोशिश की है (त्रुटि: 6026 ptrace कार्रवाई करने के लिए अटैच किया जा रहा (gdb) देते हैं:। कार्रवाई की अनुमति नहीं)
  2. gstack (gstack बस ऐसे ही लटका हुआ है)

क्या इस प्रक्रिया को डीबग करने का कोई अच्छा तरीका है?

+0

क्या आप रूट के रूप में संलग्न करने की कोशिश कर रहे हैं, या जिस उपयोगकर्ता ने प्रक्रिया बनाई है, या किसी अन्य उपयोगकर्ता के रूप में? क्या आपने जीडीबी से प्रोग्राम चलाने की कोशिश की है, इससे पहले कि वह उस बिंदु पर पहुंच जाए जहां यह लटका हुआ हो? –

+0

@ जोनाथा लेफ्लर मैंने उस प्रक्रिया को रूट में चलाया और मैंने उसी आईडी का उपयोग जीडीबी में प्रक्रिया को संलग्न करने के लिए किया। यह अग्रभूमि प्रक्रिया नहीं है, यह एक डेमॉन प्रक्रिया है। – Thangaraj

+0

ठीक है; यदि यह रूट के रूप में चलता है और आप रूट के रूप में gdb चलाने की कोशिश कर रहे हैं, तो यह विशेषाधिकारों का एक साधारण मामला नहीं है (लेकिन यह एक जटिल हो सकता है)। पूरी तरह से, मैं 'डीडी फॉलो-फोर्क-मोड' और 'सेट फोर्क-डिटेच-मोड' जैसे विकल्पों का उपयोग करके जीडीबी में डिमन शुरू कर दूंगा। –

उत्तर

6

आपकी सभी प्रतिक्रियाओं के लिए धन्यवाद। समस्या कर्नेल स्तर पर है। हमने echo t>/proc/sysrq-trigger का उपयोग किया, जो/var/log/संदेशों में सभी चल रही प्रक्रियाओं के ढेर को लॉग करता है। इस स्टैक ट्रेस ने समस्या का विश्लेषण करने में मदद की।

स्टैक ट्रेस से, फ़ाइल सिस्टम ने अन्य प्रक्रिया (जो निष्क्रिय राज्य में है) पर आवेदन प्रक्रिया की ओर से कुछ प्रतीक्षा कार्यक्रम पोस्ट किया और अनिश्चित काल तक प्रतिक्रिया की प्रतीक्षा की। लटका राज्य में कौन सा परिणाम।

1

अधिकतर किसी और को पहले ही इस प्रक्रिया का पता लगाना है। यह पता लगाने के लिए कि यह कौन कर रहा है यह प्रो फाइल सिस्टम देखें।

cat /proc/6026/status|grep TracerPid 
+0

TracePid फ़ील्ड शून्य – Thangaraj

+0

है तो कारण कुछ और है – ks1322

संबंधित मुद्दे