मैं बाहरी प्रक्रिया की स्मृति को पढ़ने के लिए पाइथन और पायथन पट्रस का उपयोग करने की कोशिश कर रहा हूं। मुझे पूरी तरह से अजगर में काम करने की ज़रूरत है, और मैं लिनक्स में एक प्रक्रिया की स्मृति को पढ़ने और प्रिंट करने की कोशिश कर रहा हूं।मैं लिनक्स में पायथन में किसी प्रक्रिया की स्मृति को कैसे पढ़ सकता हूं?
इसलिए उदाहरण के लिए मैं निम्नलिखित कोड की कोशिश की है, जो मुझे आईओ त्रुटियों दे रही रखता है:
proc_mem = open("/proc/%i/mem" % process.pid, "r")
print proc_mem.read()
proc_mem.close()
ज्यादातर मैं सिर्फ बार-बार एक प्रक्रिया की स्मृति डंप और समय के साथ परिवर्तन देखने के लिए चाहते हैं। यदि ऐसा करने का यह सही तरीका है, तो मेरी समस्या क्या है? या ऐसा करने के लिए एक और उचित तरीका है?
यह उत्तर दिया गया है, विस्तार से, http://unix.stackexchange.com/questions/6301/how-do-i-read-from-proc-pid-mem-under-linux – larsks
ऐसा लगता है/proc /% i/mem फ़ाइल को पढ़ने की कोशिश वास्तव में जिस तरह से मैं करना चाहता हूं। तो मेरे प्रश्न का दूसरा आधा मुझे लगता है। क्या पाइथन में ऐसा करने का कोई उचित तरीका है, यह मानते हुए कि मैं प्रक्रिया मेमोरी पेज पर लिखना चाहूंगा? मैं प्रक्रिया शुरू करने और रोकने के लिए ptrace का उपयोग कर रहा हूँ। – rvorderm
इस डेमो प्रोग्राम को [लिंक] (http://www.mail-archive.com/[email protected]/msg00011.html) पर दिया गया है: ऐसा लगता है कि मैं जो करने की कोशिश कर रहा हूं उससे काफी निकटता से संबंधित है , हालांकि मैं अभी तक इसे डुप्लिकेट करने में सक्षम नहीं हूं। Ptrace में एक फ़ंक्शन है जो बाइट स्ट्रिंग के लिए मेमोरी मैप के माध्यम से खोज करता है। – rvorderm