@@ -364,7 +364,7 @@ browse_file(File) ->
364
364
{ok ,Mods ,_ModsTW } = crashdump_viewer :loaded_modules (),
365
365
{ok ,_Mem ,_MemTW } = crashdump_viewer :memory (),
366
366
{ok ,_AllocAreas ,_AreaTW } = crashdump_viewer :allocated_areas (),
367
- {ok ,_AllocINfo ,_AllocInfoTW } = crashdump_viewer :allocator_info (),
367
+ {ok ,AllocInfo ,_AllocInfoTW } = crashdump_viewer :allocator_info (),
368
368
{ok ,_HashTabs ,_HashTabsTW } = crashdump_viewer :hash_tables (),
369
369
{ok ,_IndexTabs ,_IndexTabsTW } = crashdump_viewer :index_tables (),
370
370
{ok ,_PTs ,_PTsTW } = crashdump_viewer :persistent_terms (),
@@ -380,6 +380,9 @@ browse_file(File) ->
380
380
lookat_all_nodes (Nodes ),
381
381
io :format (" nodes ok" ,[]),
382
382
383
+ lookat_alloc_info (AllocInfo ,is_truncated (File )),
384
+ io :format (" alloc info ok" ,[]),
385
+
383
386
Procs . % used as second arg to special/2
384
387
385
388
is_truncated (File ) ->
@@ -733,6 +736,32 @@ lookat_all_nodes([#nod{channel=Channel0}|Nodes]) ->
733
736
{ok ,_Node = # nod {},_NodeTW } = crashdump_viewer :node_info (Channel ),
734
737
lookat_all_nodes (Nodes ).
735
738
739
+ lookat_alloc_info (_ ,true ) ->
740
+ ok ;
741
+ lookat_alloc_info ([AllocSummary |_ ],false ) ->
742
+ {" Allocator Summary" ,
743
+ [" blocks size" , " carriers size" , " mseg carriers size" ],
744
+ Data
745
+ } = AllocSummary ,
746
+
747
+ % % All values must be integer.
748
+ Filter = filter_alloc_info_fun (),
749
+ _ = [list_to_integer (IntStr ) || {_ ,L } <- Data ,
750
+ IntStr <- Filter (L )],
751
+
752
+ ok .
753
+
754
+ filter_alloc_info_fun () ->
755
+ case os :type () of
756
+ {win32 ,_ } ->
757
+ fun ([A ,B ,_ ]) ->
758
+ % % The third column is never valid on Windows.
759
+ [A ,B ]
760
+ end ;
761
+ _ ->
762
+ fun ([_ ,_ ,_ ]= L ) -> L end
763
+ end .
764
+
736
765
% %%-----------------------------------------------------------------
737
766
% %%
738
767
create_dumps (DataDir ,Rels ) ->
0 commit comments