1
コードの開始アドレスと終了アドレス、データ領域、およびヒープの開始と終了を印刷するために、プロセスのメモリ領域にアクセスする方法を学びたいと考えています。 /proc/$ pid/mapsにはプロセスの開始と終了のメモリ領域が含まれていると思いますが、別の方法があるかどうかは疑問です。おそらくptrace()?プロセスのメモリ領域へのアクセス
コードの開始アドレスと終了アドレス、データ領域、およびヒープの開始と終了を印刷するために、プロセスのメモリ領域にアクセスする方法を学びたいと考えています。 /proc/$ pid/mapsにはプロセスの開始と終了のメモリ領域が含まれていると思いますが、別の方法があるかどうかは疑問です。おそらくptrace()?プロセスのメモリ領域へのアクセス
/proc/$pid/maps
または/proc/$pid/smaps
は、プロセスのアドレス空間マッピングに関する情報を得るのに最適ですが、Linux固有の方法です。
/proc/$pid/mem
を使用してメモリ領域にアクセスすることができます(適切な領域にはlseek
、またはmmap
にアクセスすることに注意してください)。
プロセスのmm_structにアクセスするとよいでしょうか? – user1321341
おそらくカーネルの土地にのみ存在します。そう、いいえ。 Linuxでは、 '/ proc'ファイルシステムは、プロセス関連の(そしてシステム関連の)関連するものを問い合わせるための好ましい方法です。 –