Esses endereços são como deveriam e você não deve pensar neles como algo que você pode truncar. Dê uma olhada na página manual man proc
e leia sobre o conteúdo do arquivo /proc/<pid>/maps
para saber mais sobre o significado dessas colunas.
trecho
/proc/[pid]/maps
A file containing the currently mapped memory regions and their
access permissions. See mmap(2) for some further information
about memory mappings.
The format of the file is:
address perms offset dev inode pathname
00400000-00452000 r-xp 00000000 08:02 173521 /usr/bin/dbus-daemon
00651000-00652000 r--p 00051000 08:02 173521 /usr/bin/dbus-daemon
00652000-00655000 rw-p 00052000 08:02 173521 /usr/bin/dbus-daemon
00e03000-00e24000 rw-p 00000000 00:00 0 [heap]
00e24000-011f7000 rw-p 00000000 00:00 0 [heap]
...
35b1800000-35b1820000 r-xp 00000000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522 /usr/lib64/ld-2.15.so
Os endereços estão sendo exibidos dessa maneira porque há zeros à esquerda que não estão sendo mostrados nessa saída. Você pode usar este comando áspero awk
que eu construí que colocará os zeros iniciais apropriados de volta na saída para que tudo apareça alinhado com a quantidade total de espaço de endereço considerado em relação aos endereços.
$ awk '{split($1,a,"-"); $1=sprintf("%16s-%16s",a[1],a[2]); gsub(/ /,"0",$1); \
printf "%33s %4s %8s %5s %-6s %7s\n",$1,$2,$3,$4,$5,$6}' \
/proc/<pid>/maps
Exemplo
Aqui está um exemplo de arquivo de mapas do meu sistema.
antes
$ tail -10 /proc/1607/maps
7f6c3a247000-7f6c3a248000 rw-p 00021000 fd:01 526702 /usr/lib64/ld-2.17.so
7f6c3a248000-7f6c3a249000 rw-p 00000000 00:00 0
7f6c3a249000-7f6c3a2ad000 r-xp 00000000 fd:01 529820 /usr/bin/dbus-daemon
7f6c3a4ac000-7f6c3a4ae000 r--p 00063000 fd:01 529820 /usr/bin/dbus-daemon
7f6c3a4ae000-7f6c3a4af000 rw-p 00065000 fd:01 529820 /usr/bin/dbus-daemon
7f6c3a68a000-7f6c3a6ab000 rw-p 00000000 00:00 0 [heap]
7f6c3a6ab000-7f6c3aace000 rw-p 00000000 00:00 0 [heap]
7fffce239000-7fffce25a000 rw-p 00000000 00:00 0 [stack]
7fffce3fe000-7fffce400000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
depois
$ awk '{split($1,a,"-"); $1=sprintf("%16s-%16s",a[1],a[2]); gsub(/ /,"0",$1); \
printf "%33s %4s %8s %5s %-6s %7s\n",$1,$2,$3,$4,$5,$6}' \
<(tail /proc/1607/maps)
00007f6c3a247000-00007f6c3a248000 rw-p 00021000 fd:01 526702 /usr/lib64/ld-2.17.so
00007f6c3a248000-00007f6c3a249000 rw-p 00000000 00:00 0
00007f6c3a249000-00007f6c3a2ad000 r-xp 00000000 fd:01 529820 /usr/bin/dbus-daemon
00007f6c3a4ac000-00007f6c3a4ae000 r--p 00063000 fd:01 529820 /usr/bin/dbus-daemon
00007f6c3a4ae000-00007f6c3a4af000 rw-p 00065000 fd:01 529820 /usr/bin/dbus-daemon
00007f6c3a68a000-00007f6c3a6ab000 rw-p 00000000 00:00 0 [heap]
00007f6c3a6ab000-00007f6c3aace000 rw-p 00000000 00:00 0 [heap]
00007fffce239000-00007fffce25a000 rw-p 00000000 00:00 0 [stack]
00007fffce3fe000-00007fffce400000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]