我正在嘗試使用python和python ptrace來讀取外部進程的內存。我需要完全用python工作,並且我一直試圖在Linux中讀取和打印一個進程的內存。如何在linux中讀取python進程的內存?
因此,例如,我試過下面的代碼,它不斷給我IO錯誤:
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文件並不是我想要這樣做的方式。所以我猜想我的問題的另一半。假設我可能想寫入進程內存頁面,是否有適當的方法在python中執行此操作?我正在使用ptrace來啓動和停止該進程。 – rvorderm
這個[鏈接]給出的演示程序(http://www.mail-archive.com/[email protected]/msg00011.html):似乎與我正在做的事情密切相關,雖然我還沒有能夠相當複製這一點。 ptrace中有一個函數,用於在內存映射中搜索字節字符串。 – rvorderm