Subject: Re: weird "gaps" in process's memory map
To: Andrew Brown , Chris Gilbert <chris@dokein.co.uk>
From: Matt Thomas <matt@3am-software.com>
List: port-arm
Date: 12/23/2002 11:27:20
At 07:26 AM 12/23/2002, Andrew Brown wrote:
>no, that's the offset into the file being mapped.  i gave the "linux
>style" map output, but here's the (truncated) "all" output:
>
>% pmap -a | cut -c-76
>Start    End         Size  Offset   rwxpc  RWX  I/W/A Dev     Inode - File
>...
>2007a000-2007cfff      12k 00000000 r-xp+ (rwx) 1/0/0 16:00      23 - /lib/l
>2007d000-20083fff      28k 00003000 ---p+ (rwx) 1/0/0 16:00      23 - /lib/l
>20084000-20084fff       4k 00002000 rw-p- (rwx) 1/0/0 16:00      23 - /lib/l
>20085000-2008afff      24k 00000000 r-xp+ (rwx) 1/0/0 16:00      15 - /lib/l
>2008b000-20091fff      28k 00006000 ---p+ (rwx) 1/0/0 16:00      15 - /lib/l
>20092000-20092fff       4k 00005000 rw-p- (rwx) 1/0/0 16:00      15 - /lib/l
>20093000-20095fff      12k 00000000 rw-p+ (rwx) 1/0/0 00:00       0 -   [ an
>20096000-2013bfff     664k 00000000 r-xp+ (rwx) 1/0/0 16:00      13 - /lib/l
>2013c000-20142fff      28k 000a6000 ---p+ (rwx) 1/0/0 16:00      13 - /lib/l
>20143000-20148fff      24k 000a5000 rw-p- (rwx) 1/0/0 16:00      13 - /lib/l
>...
>
>the zero permission chunks are all 28k and at one page further into
>the shared object than the following chunk.

Because the arm26 uses 32K pages and so shared libraries and executeables
must have the load sections aligned to 32KB offsets.  This generates gaps
in the executeable and libraries.


-- 
Matt Thomas               Internet:   matt@3am-software.com
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message