Gdb में कोर फाइल सेव करना


90

क्या जीडीबी का उपयोग करके कोर फाइल को सेव / डंप करना संभव है ? कभी-कभी मैं बाद में विश्लेषण करने के लिए फ़ाइल को सहेजना चाहता हूं।

जवाबों:


140

Gdb में 'जनरेट-कोर-फाइल' कमांड जारी करें।

(gdb) help generate-core-file
Save a core file with the current state of the debugged process.
Argument is optional filename.  Default filename is 'core.<process_id>'.
(gdb) break main
Breakpoint 1 at 0x400e0b: file utils/udec.c, line 36.
(gdb) r
Starting program: /home/nos/build/utils/udec

Breakpoint 1, main (argc=1, argv=0x7fffffffe9a8) at utils/udec.c:36
36              int fileargc = 1;
(gdb) generate-core-file
Saved corefile core.7336

4
इसे GDB की वर्तमान कार्यशील निर्देशिका में सहेजा जाएगा, जिसे pwdकमांड के माध्यम से देखा जा सकता है । यदि आपको इसे बदलने की आवश्यकता है, तो आप ऐसा कर सकते हैं cd, जैसे एक शेल में।
जोनाथन रेनहार्ट

3
generate-core-fileयदि आप इसे किसी निश्चित स्थान पर सहेजना चाहते हैं, तो @Jonathon_Reharhar पहले तर्क के रूप में कोर-फाइल पथ पास करें
SergA

19

आप gcore <pid>कोर का उत्पादन करने के लिए भी उपयोग कर सकते हैं ।


यह टिप्पणी भाग में होना चाहिए
वी-रंड पुरो-हिट

8
कृपया इस पृष्ठ पर एक नजर है stackoverflow.com/help/privileges/comment ? जब चाहिए नहीं मैं टिप्पणी .... "एक प्रश्न का उत्तर देना या एक मौजूदा जवाब के लिए एक वैकल्पिक समाधान प्रदान,":
मेइन्यू

1
ऐसा लगता है gcoreकि केवल नए gdb संस्करणों में समर्थित है। पुराने की आवश्यकता है generate-core-file
स्काइ

यह एक ही नाम के लिए प्रतीत होता है generate-core-file, दोनों एक ही काम कर रहे हैं।
सिरो सेंटिल्ली 郝海东 i i i 法轮功 '24
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.