हाल के उबंटू (मेरे मामले में 12.04) पर, "सेगमेंटेशन फ़ॉल्ट (कोर डंप किया गया)" मुद्रित होने के लिए संभव है, लेकिन कोई कोर फ़ाइल उत्पन्न नहीं हुई है जहाँ आप एक की उम्मीद कर सकते हैं (उदाहरण के लिए स्थानीय रूप से संकलित कार्यक्रम के लिए)।
ऐसा हो सकता है यदि आपके पास 0 (आप ऐसा नहीं किया है ulimit -c unlimited
) का एक मुख्य फ़ाइल आकार ulimit है - यह उबंटू पर डिफ़ॉल्ट है। आम तौर पर कि दबाने होगा "(कोर फेंक दिया)", अपनी गलती में आप cluing, लेकिन Ubuntu पर, corefiles को पहुंचाया जाता है Apport (उबंटू के क्रैश रिपोर्टिंग प्रणाली) के माध्यम से /proc/sys/kernel/core_pattern
, और इस भ्रामक संदेश का कारण बन रहा है।
यदि Apport को पता चलता है कि विचाराधीन प्रोग्राम वह नहीं है, जिसके लिए क्रैश रिपोर्ट हो रही हो (जिसके बारे में आप देख सकते हैं /var/log/apport.log
), यह cwd में एक कोर फाइल डालने के डिफ़ॉल्ट कर्नेल व्यवहार का अनुकरण करने के लिए वापस आता है (यह स्क्रिप्ट में किया जाता है /usr/share/apport/apport
)। इसमें उल्लिम को सम्मानित करना शामिल है, जिस स्थिति में यह कुछ भी नहीं करता है। लेकिन (मुझे लगता है) जहां तक कर्नेल का संबंध है, एक कोरफाइल उत्पन्न हुआ था (और एपॉर्ट करने के लिए पाइप किया गया था), इसलिए संदेश "सेगमेंटेशन दोष (कोर डंप किया गया)"।
अल्टीमेट सेट करने की भूल करने के लिए अंततः PEBKAC, लेकिन भ्रामक संदेश ने मुझे यह सोच कर परेशान कर दिया कि मैं थोड़ी देर के लिए पागल हो रहा था, सोच रहा था कि मेरे कोरफाइल्स क्या खा रहे थे।
(इसके अलावा, सामान्य तौर पर, कोर (5) मैनुअल पेज - man 5 core
- एक अच्छा संदर्भ है जहां आपकी कोर फाइल समाप्त हो जाती है और कारण यह नहीं लिखा जा सकता है।)