@@ -746,6 +746,7 @@ bool cbm_mem_win_census(cbm_mem_win_census_t *out) {
746746 out -> committed_private += mbi .RegionSize ;
747747 if (mbi .RegionSize > out -> largest_private_region ) {
748748 out -> largest_private_region = mbi .RegionSize ;
749+ out -> largest_private_base = mbi .BaseAddress ;
749750 }
750751 if (mbi .RegionSize >= (size_t )CBM_SZ_1K * CBM_SZ_1K ) {
751752 out -> private_regions_1mb ++ ;
@@ -827,6 +828,7 @@ void cbm_mem_census_log(const char *tag) {
827828 char rss_kb [CBM_SZ_32 ];
828829 char biggest_kb [CBM_SZ_32 ];
829830 char regions [CBM_SZ_32 ];
831+ char base [CBM_SZ_32 ];
830832 char big_regions [CBM_SZ_32 ];
831833 char heaps [CBM_SZ_32 ];
832834 (void )snprintf (priv_kb , sizeof (priv_kb ), "%zu" , census .committed_private / CBM_SZ_1K );
@@ -837,6 +839,7 @@ void cbm_mem_census_log(const char *tag) {
837839 (void )snprintf (biggest_kb , sizeof (biggest_kb ), "%zu" ,
838840 census .largest_private_region / CBM_SZ_1K );
839841 (void )snprintf (regions , sizeof (regions ), "%u" , census .regions );
842+ (void )snprintf (base , sizeof (base ), "%p" , census .largest_private_base );
840843 (void )snprintf (big_regions , sizeof (big_regions ), "%u" , census .private_regions_1mb );
841844 (void )snprintf (heaps , sizeof (heaps ), "%u" , census .heap_walk_ok ? census .crt_heap_count : 0 );
842845 char dc_calls [CBM_SZ_32 ];
@@ -859,5 +862,5 @@ void cbm_mem_census_log(const char *tag) {
859862 "crt_busy_kb" , busy_kb , "mapped_kb" , mapped_kb , "rss_kb" , rss_kb , "biggest_kb" ,
860863 biggest_kb , "regions" , regions , "big_regions" , big_regions , "heaps" , heaps ,
861864 "decommit_calls" , dc_calls , "decommit_fails" , dc_fail , "decommit_err" , dc_err ,
862- "decommit_mb" , dc_mb );
865+ "decommit_mb" , dc_mb , "biggest_base" , base );
863866}
0 commit comments