Comment puis-je surveiller la consommation de memory par process / par thread (divisée en tas, stack, données, code)?

Avant de sauter et d'écrire mon propre code, je veux savoir s'il existe un logiciel GNU / Linux capable de produire quelque chose de similaire au showmem de QNX .

Pour chaque thread de chaque process en cours d'exécution, je voudrais voir la consommation de memory divisé dans les catégories suivantes:

  Process listing (Total, Code, Data, Heap, Stack, Other) 319488 1024000 24587 167936 24576 0 4103 devc-con-hid (thread 2) 0 0 0 0 4096 0 4103 devc-con-hid (thread 2) 0 0 0 0 20480 0 4103 devc-con-hid (thread 1) 0 102400 8192 0 0 0 4103 devc-con-hid (proc/boot/devc-con-hid) 0 0 16384 0 0 0 4103 devc-con-hid (proc/boot/libc.so.3) 0 0 0 0 0 ( 36864) 4103 devc-con-hid (/dev/mem) 

Y a-t-il quelque chose qui rendra cela possible?

vous pouvez voir certaines informations en utilisant pmap -x PID – il est divisé ino kbytes, rss et la memory sale pour chaque bibliothèque / module / file ouvert / stack de process:

 undefine @ uml: ~ $ pmap -x 13206
 13206: sumil 60
 Adresse Kbytes RSS Mappage de mode sale
 0000000000400000 24 20 0 rx-- sumil
 0000000000606000 4 4 4 r ---- sumil
 0000000000607000 4 4 4 rw --- sumil
 000000000063b000 132 8 8 rw --- [anon]
 00007f6a9847e000 4308 44 0 r ---- locale-archive
 00007f6a988b3000 1772 376 0 rx-- libc-2.19.so
 00007f6a98a6e000 2048 0 0 ----- libc-2.19.so
 00007f6a98c6e000 16 16 16 r ---- libc-2.19.so
 00007f6a98c72000 8 8 8 rw --- libc-2.19.so
 00007f6a98c74000 20 12 12 rw --- [anon]
 00007f6a98c79000 140 116 0 rx-- ld-2.19.so
 00007f6a98e71000 12 12 12 rw --- [anon]
 00007f6a98e99000 8 8 8 rw --- [anon]
 00007f6a98e9b000 4 4 4 r ---- ld-2.19.so
 00007f6a98e9c000 4 4 4 rw --- ld-2.19.so
 00007f6a98e9d000 4 4 4 rw --- [anon]
 00007fff09fd0000 132 12 12 rw --- [stack]
 00007fff09ffe000 8 4 0 rx-- [anon]
 ffffffffff600000 4 0 0 rx-- [anon]
 ---------------- ------- ------- ------- 
 total kB 8652 656 96