Under 2.0.4, I have a program that gives the following under /proc/pid/maps:
0x8048000 0x8054000 r-xp 0x0 16:1 368915
0x8054000 0x8055000 rw-p 0xb000 16:1 368915
0x8055000 0x8069000 rwxp 0x0 0:0 0
0x40000000 0x40005000 rwxp 0x0 16:1 16473
0x40005000 0x40006000 rw-p 0x4000 16:1 16473
0x40006000 0x40009000 rw-p 0x0 0:0 0 ****
0x40009000 0x40082000 r-xp 0x0 16:1 16419
0x40082000 0x40088000 rw-p 0x78000 16:1 16419
0x40088000 0x400ba000 rw-p 0x0 0:0 0
0xbfffc000 0xc0000000 rwxp 0xffffd000 0:0 0
I'm tring to read the segment of memory marked above with the ***'s.
When I read to about 0x40008000, I get a segfault. According to the
protection bits, I should have read access. Well, why do I get a segfault??
BTW, the inode 16473 corresponds to the ld-linux.so file. If I'm reading
the maps file correctly, this segment should be something like
uninitialized data since it is writeable and not mapped to a file on
the HD... Is this correct???
Thanks,
Michael