मुझे ubuntu 16.04LTS में कोर डंप कहां मिलेगा?


14

मेरे पास एक C ++ प्रोग्राम है जो वह करता है जो उसे करना चाहिए था, लेकिन पॉइंटर के साथ कुछ समस्या होनी चाहिए, क्योंकि यह अंत में क्रैश हो जाता है और एक कोर डंप बनाता है। मेरी समस्या यह है कि मुझे कोर फाइल नहीं मिल रही है, इसलिए मैं इसे डीबग नहीं कर सकता।

मैं प्रयास कर चुका हूं

ulimit -c unlimited
ulimit -a

और अब फ़ाइल का आयाम असीमित पर सेट है, लेकिन फिर भी मुझे कोर नहीं मिल रहा है। मैंने यहां लिखे गए प्रत्येक फ़ोल्डर में कोशिश की है लेकिन फिर भी ऐसा लगता है कि कोई कोर फ़ाइल नहीं बनाई गई है।

मैं इसे कहाँ पा सकता हूँ?


वर्तमान निर्देशिका, या/var/crash
वाल्टिनेटर

4
ज्यादातर मामलों में सच है, @waltinator, कभी-कभी जांचना आवश्यक होता है /var/log/apport.log, क्योंकि आधुनिक उबंटू संस्करण Apport का उपयोग करते हैं, जो गैर-स्पष्ट तरीकों से कोर-डंपिंग में हस्तक्षेप कर सकता है। अधिक जानकारी के लिए stackoverflow.com/a/18368068/1772379 देखें ।
बेन जॉनसन

जवाबों:


12

उबंटू में कोर डंपों को एपोर्ट द्वारा नियंत्रित किया जाता है और इसमें स्थित किया जा सकता है /var/crash/। लेकिन यह स्थिर रिलीज में डिफ़ॉल्ट रूप से अक्षम है।

Apport को सक्षम करने के लिए, चलाएँ: sudo systemctl enable apport.serviceया sudo service apport start


अक्षम करने, चलाने के लिए: sudo systemctl disable apport.serviceया sudo service apport stopनियमित कोर डंपिंग विधि पर वापस जाने के लिए। देखें: मैं Apport को कैसे सक्षम या अक्षम कर सकता हूं?

स्थायी रूप से अक्षम करने के लिए, /etc/apport/crashdb.confफ़ाइल को संपादित करें और निम्नलिखित लाइन पर टिप्पणी करें:

'problem_types': ['Bug', 'Package'],

#लाइन की शुरुआत में हैश चिन्ह ( ) जोड़कर ।

क्रैश रिपोर्टिंग (सामान्य पर वापस) को अक्षम करने के लिए, हैश प्रतीक (जैसा था) को हटा दें।


आप यह भी देख सकते core_patternहैं कि कर्नेल द्वारा कोर डंप कैसे संभाले जाते हैं:

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c

इसलिए भी कोर फाइलें अक्षम हैं ulimit, apportफिर भी दुर्घटना को पकड़ लेगी।

यह सभी देखें:


4

उन गुग्लिन के लिए ': (मेरे मामले में - उबंटू 16.04 और 18.04 और एक कस्टम ऐप) /var/crashअभी भी खाली था, इसलिए कोर निर्माण को संभालने का एक त्वरित तरीका है (बशर्ते कि आप प्रासंगिक प्रासंगिक बिल्ट सेटिंग का उपयोग कर रहे हों )

sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation

तथा

systemctl restart apport # to restore default apport settings
# which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes)


सूत्रों का कहना है:


सरल, सीधा, काम किया।
ताकाहन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.