These addresses are as they should be and you shouldn't think of them as being something you can truncate. Take a look at the man page man proc
and read about the contents of the file /proc/<pid>/maps
for more on what these columns mean.
excerpt
/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
The addresses are being displayed this way because there are leading zeros that are not being shown in this output. You can use this rough awk
command that I've constructed which will put the proper leading zeros back into the output so that everything shows up lined up with the full amount of address space taken into account with respect to the addresses.
$ 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
Example
Here's a sample maps file from my system.
before
$ 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]
after
$ 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]