2008-09-16 12 views
41

क्या चल रहा प्रक्रिया का कोर डंप बनाने के लिए जीडीबी प्राप्त करना या कुछ अन्य टूल्स का उपयोग करना संभव है और यह प्रतीक तालिका है? प्रक्रिया को समाप्त किए बिना ऐसा करने का कोई तरीका है तो यह बहुत अच्छा होगा।क्या चल रही प्रक्रिया और इसकी प्रतीक तालिका का कोर डंप प्राप्त करना संभव है?

यदि यह संभव है, तो आप किस आदेश का उपयोग करेंगे? gcore $(pidof processname) चलाने (मैं एक लिनक्स बॉक्स पर यह करने के लिए कोशिश कर रहा हूँ)

उत्तर

50
 
$ gdb --pid=26426 
(gdb) gcore 
Saved corefile core.26426 
(gdb) detach 
+5

आपको ulimit -c असीमित सेट करने की आवश्यकता नहीं है क्योंकि gdb इसका सम्मान नहीं करता है (gdb हमेशा आपको संपूर्ण कोर फ़ाइल देना चाहिए)। आप जीडीबी चलाने के बिना क्ली से 'gcore pid' कमांड का उपयोग करके भी ऐसा कर सकते हैं। – psanford

39

या।

इसका लाभ (जीडीबी चलाने और सीएलआई को आदेश जारी करने पर) है कि आप सबसे कम संभव समय में संलग्न और अलग करते हैं।

0

नोट: निम्न विधि चल रही प्रक्रिया को समाप्त कर देगी & प्रतीकों की भी आवश्यकता है।

आप चलने वाली प्रक्रिया के लिए निम्न संकेतों में से एक (कार्रवाई के साथ = कोर) भेज सकते हैं:
से: http://man7.org/linux/man-pages/man7/signal.7.html

 Signal  Value  Action Comment 
     ────────────────────────────────────────────────────────────────────── 
     SIGHUP  1  Term Hangup detected on controlling terminal 
            or death of controlling process 
     SIGINT  2  Term Interrupt from keyboard 
     SIGQUIT  3  Core Quit from keyboard 
     SIGILL  4  Core Illegal Instruction 
     SIGABRT  6  Core Abort signal from abort(3) 
     SIGFPE  8  Core Floating point exception 
     SIGKILL  9  Term Kill signal 
     SIGSEGV  11  Core Invalid memory reference 
     SIGPIPE  13  Term Broken pipe: write to pipe with no 
            readers 
     SIGALRM  14  Term Timer signal from alarm(2) 
     SIGTERM  15  Term Termination signal 
     SIGUSR1 30,10,16 Term User-defined signal 1 
     SIGUSR2 31,12,17 Term User-defined signal 2 
     SIGCHLD 20,17,18 Ign  Child stopped or terminated 
     SIGCONT 19,18,25 Cont Continue if stopped 
     SIGSTOP 17,19,23 Stop Stop process 
     SIGTSTP 18,20,24 Stop Stop typed at terminal 
     SIGTTIN 21,21,26 Stop Terminal input for background process 
     SIGTTOU 22,22,27 Stop Terminal output for background process 

तो जैसा:
kill <signal> <pid>

और एक बार आपके पास कोर, आप प्रतीक फ़ाइल के साथ जीडीबी में खोल सकते हैं।

0

आप चल रहे प्रक्रिया के कोर डंप उत्पन्न करने के लिए जीडीबी में generate-core-file कमांड का उपयोग कर सकते हैं।

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