
有沒有工具可以查看/編輯 Linux 上正在運行的進程的用戶空間記憶體?
這將會是一個很棒的學習工具。
答案1
進程的記憶體可作為檔案使用/proc/12345/mem
,其中 12345 是進程 ID。不過,您暫時還無法直接從中學到任何東西。首先要弄清楚哪些部分被映射了;此資訊可在/proc/12345/maps
和中找到/proc/12345/smaps
。條目/proc
記錄在核心文件中:Documentation/filesystems/proc.txt
。該lsof
命令將以更易讀的方式提供有關進程已映射到記憶體的檔案的資訊。
使用偵錯器查看正在運行的進程可能更具指導意義。 Linux下常用的調試器是資料庫。 Gdb 有一個簡單的命令列介面;DDD和Emacs提供使用者友善的介面。為了獲得最佳結果,請查看仍然具有偵錯符號且原始程式碼可用的程式(即查看剛剛編譯-g
且尚未剝離的程式)。
您還應該了解如何strace
觀察進程正在進行的系統調用,以及ltrace
觀察(某些)庫調用。