diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-04-18 08:44:10 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-04-18 08:44:10 +0000 |
commit | 0588a9cb6275025a62d89b94bcde1a9bb13e9c69 (patch) | |
tree | ecdd4fa0003239581b0b422cb06e3b466ad02b4c /malloc | |
parent | da2d2fb68dae7ed9f498fc67c85690d890b753fd (diff) | |
download | glibc-0588a9cb6275025a62d89b94bcde1a9bb13e9c69.zip glibc-0588a9cb6275025a62d89b94bcde1a9bb13e9c69.tar.gz glibc-0588a9cb6275025a62d89b94bcde1a9bb13e9c69.tar.bz2 |
* malloc/malloc.c (malloc_info): Output address space information.
Diffstat (limited to 'malloc')
-rw-r--r-- | malloc/malloc.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c index c9141f7..0b9face 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -6251,6 +6251,8 @@ malloc_info (int options, FILE *fp) size_t total_fastavail = 0; size_t total_system = 0; size_t total_max_system = 0; + size_t total_aspace = 0; + size_t total_aspace_mprotect = 0; void mi_arena (mstate ar_ptr) { @@ -6363,10 +6365,31 @@ malloc_info (int options, FILE *fp) "</sizes>\n<total type=\"fast\" count=\"%zu\" size=\"%zu\"/>\n" "<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n" "<system type=\"current\" size=\"%zu\"/>\n" - "<system type=\"max\" size=\"%zu\"/>\n" - "</heap>\n", + "<system type=\"max\" size=\"%zu\"/>\n", nfastblocks, fastavail, nblocks, avail, ar_ptr->system_mem, ar_ptr->max_system_mem); + + if (ar_ptr != &main_arena) + { + heap_info *heap = heap_for_ptr(top(ar_ptr)); + fprintf (fp, + "<aspace type=\"total\" size=\"%zu\"/>\n" + "<aspace type=\"mprotect\" size=\"%zu\"/>\n", + heap->size, heap->mprotect_size); + total_aspace += heap->size; + total_aspace_mprotect += heap->mprotect_size; + } + else + { + fprintf (fp, + "<aspace type=\"total\" size=\"%zu\"/>\n" + "<aspace type=\"mprotect\" size=\"%zu\"/>\n", + ar_ptr->system_mem, ar_ptr->system_mem); + total_aspace += ar_ptr->system_mem; + total_aspace_mprotect += ar_ptr->system_mem; + } + + fputs ("</heap>\n", fp); } fputs ("<malloc version=\"1\">\n", fp); @@ -6385,9 +6408,12 @@ malloc_info (int options, FILE *fp) "<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n" "<system type=\"current\" size=\"%zu\n/>\n" "<system type=\"max\" size=\"%zu\n/>\n" + "<aspace type=\"total\" size=\"%zu\"/>\n" + "<aspace type=\"mprotect\" size=\"%zu\"/>\n" "</malloc>\n", total_nfastblocks, total_fastavail, total_nblocks, total_avail, - total_system, total_max_system); + total_system, total_max_system, + total_aspace, total_aspace_mprotect); return 0; } |