viernes, 7 de diciembre de 2012

Pmap en OS X es vmmap

Para los usuarios que estamos acostumbrados al uso Linux el cambio a OS X puede suponer algunos problemas en cuanto a querer usar algún programa o configurar algo.
Uno que me surgió a mí al poco tiempo de uso de mi mac fue el de mapear la memoria que usa un proceso cuando me di cuenta que no tenía pmap.

Cabe recordar que en OS X subyace el sistema operativo Darwin cuyo kernel incluye varios elementos de BSD.
Los sistemas BSD usan vmmap para el mapeo de la memoria, el cual viene incluido en OS X.



Uso de Pmap en Debian 6(32 bits)

$pmap PID
 2393:  ./a.out  
 08048000   4K r-x-- /Home/Desktop/a.out  
 08049000   4K rw--- /Home/Desktop/a.out  
 b7611000   4K rw---  [ anon ]  
 b7612000  1280K r-x-- /lib/i686/cmov/libc-2.11.3.so  
 b7752000   4K ----- /lib/i686/cmov/libc-2.11.3.so  
 b7753000   8K r---- /lib/i686/cmov/libc-2.11.3.so  
 b7755000   4K rw--- /lib/i686/cmov/libc-2.11.3.so  
 b7756000   12K rw---  [ anon ]  
 b776b000   8K rw---  [ anon ]  
 b776d000   4K r-x--  [ anon ]  
 b776e000  108K r-x-- /lib/ld-2.11.3.so  
 b7789000   4K r---- /lib/ld-2.11.3.so  
 b778a000   4K rw--- /lib/ld-2.11.3.so  
 bf8eb000   84K rw---  [ stack ]  
  total   1532K  



Uso de vmmap en OS X 10.8(64 bits)

$vmmap PID
 Virtual Memory Map of process 984 (a.out)  
 Output report format: 2.2 -- 64-bit process  
 ==== Non-writable regions for process 984  
 __TEXT         0000000102918000-0000000102919000 [  4K] r-x/rwx SM=COW /Users/XXXXXX/a.out  
 __LINKEDIT       000000010291a000-000000010291b000 [  4K] r--/rwx SM=COW /Users/XXXXXX/a.out  
 MALLOC metadata    000000010291b000-000000010291c000 [  4K] r--/rwx SM=COW   
 MALLOC guard page   000000010291d000-000000010291e000 [  4K] ---/rwx SM=NUL   
 MALLOC guard page   0000000102933000-0000000102935000 [  8K] ---/rwx SM=NUL   
 MALLOC guard page   000000010294a000-000000010294b000 [  4K] ---/rwx SM=NUL   
 MALLOC metadata    000000010294b000-000000010294c000 [  4K] r--/rwx SM=COW   
 STACK GUARD      00007fff592e8000-00007fff5cae8000 [ 56.0M] ---/rwx SM=NUL stack guard for thread 0  
 __TEXT         00007fff62518000-00007fff6254d000 [ 212K] r-x/rwx SM=COW /usr/lib/dyld  
 __LINKEDIT       00007fff62589000-00007fff6259c000 [  76K] r--/rwx SM=COW /usr/lib/dyld  
 __TEXT         00007fff85cf9000-00007fff85d1c000 [ 140K] r-x/r-x SM=COW /usr/lib/system/libxpc.dylib  
 __TEXT         00007fff85fc8000-00007fff85fff000 [ 220K] r-x/r-x SM=COW /usr/lib/system/libsystem_info.dylib  
 __TEXT         00007fff8691b000-00007fff8691c000 [  4K] r-x/r-x SM=COW /usr/lib/system/libkeymgr.dylib  
 __TEXT         00007fff86e75000-00007fff86f8e000 [ 1124K] r-x/r-x SM=COW /usr/lib/libobjc.A.dylib  
 __TEXT         00007fff8717a000-00007fff87180000 [  24K] r-x/r-x SM=COW /usr/lib/system/libcompiler_rt.dylib  
 __TEXT         00007fff871f1000-00007fff871f9000 [  32K] r-x/r-x SM=COW /usr/lib/system/libcopyfile.dylib  
 __TEXT         00007fff88c21000-00007fff88c25000 [  16K] r-x/r-x SM=COW /usr/lib/system/libdyld.dylib  
 __TEXT         00007fff88c6d000-00007fff88c6f000 [  8K] r-x/r-x SM=COW /usr/lib/system/libdnsinfo.dylib  
 __TEXT         00007fff8907c000-00007fff890e5000 [ 420K] r-x/r-x SM=COW /usr/lib/libc++.1.dylib  
 __TEXT         00007fff89150000-00007fff8917f000 [ 188K] r-x/r-x SM=COW /usr/lib/system/libsystem_m.dylib  
 shared memory     00007fffffe00000-00007fffffe01000 [  4K] r--/r-- SM=SHM   
 shared memory     00007ffffff60000-00007ffffff61000 [  4K] r-x/r-x SM=SHM   
 ==== Writable regions for process 984  
 __DATA         0000000102919000-000000010291a000 [  4K] rw-/rwx SM=PRV /Users/XXXXX/a.out  
 MALLOC metadata    000000010291c000-000000010291d000 [  4K] rw-/rwx SM=COW   
 MALLOC metadata    000000010291e000-0000000102933000 [  84K] rw-/rwx SM=COW   
 MALLOC metadata    0000000102935000-000000010294a000 [  84K] rw-/rwx SM=COW   
 MALLOC_TINY      00007fe633c00000-00007fe633d00000 [ 1024K] rw-/rwx SM=COW DefaultMallocZone_0x10291b000  
 MALLOC_SMALL      00007fe634000000-00007fe634800000 [ 8192K] rw-/rwx SM=COW DefaultMallocZone_0x10291b000  
 Stack         00007fff5cae8000-00007fff5d2e7000 [ 8188K] rw-/rwx SM=ZER thread 0  
 Stack         00007fff5d2e7000-00007fff5d2e8000 [  4K] rw-/rwx SM=COW thread 0  
 __DATA         00007fff6254d000-00007fff62589000 [ 240K] rw-/rwx SM=COW /usr/lib/dyld  
 __DATA         00007fff75cdf000-00007fff75ce4000 [  20K] rw-/rwx SM=COW /usr/lib/system/libxpc.dylib  
 __DATA         00007fff75d55000-00007fff75d58000 [  12K] rw-/rwx SM=COW /usr/lib/system/libsystem_info.dylib  
 __DATA         00007fff75f4f000-00007fff75f50000 [  4K] rw-/rwx SM=COW /usr/lib/system/libkeymgr.dylib  
 __DATA         00007fff75ff8000-00007fff76000000 [  32K] rw-/rwx SM=COW /usr/lib/libobjc.A.dylib  
 __DATA         00007fff76049000-00007fff7604a000 [  4K] rw-/rw- SM=COW /usr/lib/system/libcompiler_rt.dylib  
 __DATA         00007fff76067000-00007fff76068000 [  4K] rw-/rw- SM=COW /usr/lib/system/libcopyfile.dylib  
 __DATA         00007fff7627b000-00007fff7627c000 [  4K] rw-/rwx SM=COW /usr/lib/system/libdyld.dylib  
 __DATA         00007fff7628b000-00007fff7628c000 [  4K] rw-/rwx SM=COW /usr/lib/system/libdnsinfo.dylib  
 __DATA         00007fff7634b000-00007fff76353000 [  32K] rw-/rwx SM=COW /usr/lib/libc++.1.dylib  
 ==== Legend  
 SM=sharing mode:   
      COW=copy_on_write PRV=private NUL=empty ALI=aliased   
      SHM=shared ZER=zero_filled S/A=shared_alias  
 ==== Summary for process 984  
 ReadOnly portion of Libraries: Total=57.6M resident=17.6M(31%) swapped_out_or_unallocated=40.0M(69%)  
 Writable regions: Total=17.4M written=12K(0%) resident=128K(1%) swapped_out=0K(0%) unallocated=17.3M(99%)  
 REGION TYPE           VIRTUAL  
 ===========           =======  
 MALLOC               9216K    see MALLOC ZONE table below  
 MALLOC guard page          16K  
 MALLOC metadata           180K  
 STACK GUARD            56.0M  
 Stack               8192K  
 __DATA               592K  
 __LINKEDIT             53.1M  
 __TEXT               4568K  
 shared memory             8K  
 ===========           =======  
 TOTAL               131.3M  
                  VIRTUAL ALLOCATION   BYTES  
 MALLOC ZONE             SIZE   COUNT ALLOCATED % FULL  
 ===========           ======= ========= ========= ======  
 DefaultMallocZone_0x10291b000   9216K    292    27K   0%  

No hay comentarios:

Publicar un comentario