2017-09-19 9 views
0

Linuxでいくつかのプログラムを実行すると、バイナリの一部が物理メモリにマップされていることが/ proc/pid/smapsにわかります。たとえば、次のようにバイナリファイルのマッピングの検査

08047000-0804d000 r-xp 00000000 b4:04 2845  /usr/bin/test_prog 
Size:     24 kB 
Rss:     20 kB 
Pss:     20 kB 
Shared_Clean:   0 kB 
Shared_Dirty:   0 kB 
Private_Clean:  20 kB 
Private_Dirty:   0 kB 
Referenced:   20 kB 
... 

(24キロバイトのうちの20をマッピングされた)

どのように私は正確にバイナリの部分がマッピングされているかを見ることができますか?私が正しく理解すれば、this答えフィールドアドレス/proc/pid/mapsには、仮想メモリ内のファイル全体の開始アドレスと終了アドレスが表示されます。どのツールを使用して、バイナリがロードされてRAMにマップされている仮想メモリの部分を調べることができますか?

答えて

0

/proc/pid/pagemapこのような情報を与えることができます。ドキュメントはhereです。