gdb - एएलएफ कोर फ़ाइल प्रारूप




core elf (4)

जीडीबी स्रोत के माध्यम से खुदाई की कमी, कोर फाईल्स बनाने के लिए प्रयुक्त प्रारूप के बारे में मैं दस्तावेज़ कहां मिल सकता हूं?

एएलएफ विनिर्देशन कोर फाइल स्वरूप को खुले छोड़ देता है, इसलिए मुझे लगता है कि यह GDB विनिर्देशों का हिस्सा होना चाहिए! दुर्भाग्य से, मुझे इस संबंध में जीएनयू के जीडीबी प्रलेखन से कोई मदद नहीं मिली।

यहां मैं क्या करने की कोशिश कर रहा हूं: चलने की प्रक्रिया को शामिल करने वाले निष्पादन योग्य / लाइब्रेरी में नामों को कार्यान्वित करने के लिए आभासी पतों को मैप करें ऐसा करने के लिए, मैं सबसे पहले कोर फ़ाइल से, आभासी पता स्थान से एक्जीक्यूटेबल फाइल / पुस्तकालयों के नाम तक मैप करना चाहता हूं, और फिर सांकेतिक जानकारी प्राप्त करने के लिए संबंधित फाइल में खोदना चाहता हूं।

अब 'रीडेल-ए कोर' कहता है कि कोर फाइल में लगभग सभी खंड प्रकार 'लोड' होते हैं - मुझे लगता था कि ये सभी भाग लेने वाली फाइलों के .text और .bss / .data सेगमेंट हैं प्लस एक स्टैक सेगमेंट इन लोड सेगमेंट को छोड़कर, एक नोट सेगमेंट है, लेकिन इसमें मानचित्र शामिल नहीं है तो कैसे एक फाइल के बारे में जानकारी से मेल खाती है, कोर फ़ाइल में संग्रहीत है? क्या उन 'भार' खंडों को फाइल की जानकारी शामिल करने के लिए विशेष रूप से प्रारूपित किया जाता है?


आपकी समस्या का एक आसान समाधान / proc / $ pid / maps से पाठ को पार्स करने के लिए हो सकता है कि यह निर्धारित करने के लिए कि कोई दिए गए वर्चुअल पता नक्शे को किस फाइल में भेज दिया जाए। तब आप इसी फ़ाइल को पार्स कर सकते हैं

केन्शोटो के ओपन सोर्स वीडीबी (डीबगर) इस दृष्टिकोण का उपयोग करता है, अगर आप अजगर पढ़ सकते हैं तो यह एक अच्छा उदाहरण है।


एक मुख्य डंप प्रक्रिया के इन-मेमोरी छवि होती है जब यह क्रैश हो जाता है। इसमें प्रोग्राम खंड, स्टैक, ढेर और अन्य डेटा शामिल हैं। सामग्रियों को समझने के लिए आपको अभी भी मूल कार्यक्रम की आवश्यकता होगी: प्रतीक तालिकाओं और अन्य डेटा को सार्थक छवियों में स्मृति के रूप में कच्चे पते और संरचनाएं बनाते हैं।


मुख्य फाइल को बनाए जाने वाली प्रक्रिया के बारे में अतिरिक्त जानकारी एक एएलएफ नोट अनुभाग में संग्रहित होती है, यद्यपि एक ऑपरेटिंग सिस्टम विशिष्ट तरीके से। उदाहरण के लिए, नेटबीएसडी के लिए कोर (5) पुस्तिका पृष्ठ देखें


bfd , binutils , आदि द्वारा उपयोग किए गए bfd लाइब्रेरी के रूप में बहुत ज्यादा gdb नहीं।