Не удалось правильно понять вывод pmap - PullRequest
0 голосов
/ 08 марта 2011

Я написал простую C-программу для потоков, чья карта процессов выглядит следующим образом:

anirudh@anirudh-Aspire-5920:~/Documents/DUMP$ pmap 3232
3232:   ./a.out
00148000   1372K r-x--  /lib/libc-2.12.1.so
0029f000      8K r----  /lib/libc-2.12.1.so
002a1000      4K rw---  /lib/libc-2.12.1.so
002a2000     12K rw---    [ anon ]
003c8000      4K r-x--    [ anon ]
00640000    112K r-x--  /lib/ld-2.12.1.so
0065c000      4K r----  /lib/ld-2.12.1.so
0065d000      4K rw---  /lib/ld-2.12.1.so
0074c000     84K r-x--  /lib/libpthread-2.12.1.so
00761000      4K -----  /lib/libpthread-2.12.1.so
00762000      4K r----  /lib/libpthread-2.12.1.so
00763000      4K rw---  /lib/libpthread-2.12.1.so
00764000      8K rw---    [ anon ]
08048000      4K r-x--  /home/anirudh/Documents/DUMP/a.out
08049000      4K r----  /home/anirudh/Documents/DUMP/a.out
0804a000      4K rw---  /home/anirudh/Documents/DUMP/a.out
08155000    132K rw---    [ anon ]
b6856000      4K -----    [ anon ]
b6857000   8192K rw---    [ anon ]
b7057000      4K -----    [ anon ]
b7058000   8200K rw---    [ anon ]
b786b000     12K rw---    [ anon ]
bfc8e000    132K rw---    [ stack ]
 total    18312K
anirudh@anirudh-Aspire-5920:

Теперь из приведенного выше отображения я думаю, что это должен быть сегмент кода, потому что сегмент кода нельзя изменить, если толькоархитектура поддерживает самоизменяющийся код

08048000 4K r-x-- /home/anirudh/Documents/DUMP/a.out

Это сегмент данных.Я объявил глобальную переменную, проверил ее адрес и соврал в диапазон адресов следующего сегмента.

0804a000 4K rw--- /home/anirudh/Documents/DUMP/a.out

Теперь я не понимаю, для чего предназначен следующий сегмент ...это код или данные.

08049000 4K r---- /home/anirudh/Documents/DUMP/a.out

Спасибо за чтение моего вопроса.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 08 марта 2011

Это данные только для чтения, такие как, например, строковые литералы.

r-x: Code, and potentially read-only data
rw-: Data, modifiable
r--: Data, read-only
...