X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FFrontPanel.c;h=85faeebbae1cf2ff8d7a1d87845a5754bcfab86e;hb=423d477bfecd490de1449c59325c8776f91d7aac;hp=fd5bbe172f39ee254ff91cf19e5dec76bfed0845;hpb=39a991713f0705bf2599930e378178a1d6e2b5f9;p=ghc-hetmet.git diff --git a/ghc/rts/FrontPanel.c b/ghc/rts/FrontPanel.c index fd5bbe1..85faeeb 100644 --- a/ghc/rts/FrontPanel.c +++ b/ghc/rts/FrontPanel.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: FrontPanel.c,v 1.1 2000/11/01 11:41:47 simonmar Exp $ + * $Id: FrontPanel.c,v 1.9 2004/08/13 13:09:49 simonmar Exp $ * * (c) The GHC Team 2000 * @@ -9,13 +9,14 @@ #ifdef RTS_GTK_FRONTPANEL -#define NON_POSIX_SOURCE +/* Alas, not Posix. */ +/* #include "PosixSource.h" */ #include "Rts.h" #include "RtsUtils.h" #include "MBlock.h" #include "FrontPanel.h" -#include "StoragePriv.h" +#include "Storage.h" #include "Stats.h" #include "RtsFlags.h" #include "Schedule.h" @@ -128,7 +129,7 @@ initFrontPanel( void ) gtk_init( &prog_argc, &prog_argv ); - window = create_GHC_Visualisation_Tool(); + window = create_GHC_Front_Panel(); map_drawing_area = lookup_widget(window, "memmap"); gen_drawing_area = lookup_widget(window, "generations"); res_drawing_area = lookup_widget(window, "res_drawingarea"); @@ -395,6 +396,7 @@ updateFrontPanel( void ) block_width, block_height, blocks_per_line ); } +#if 0 /* Segfaults because bd appears to be bogus but != NULL. stolz, 2003-06-24 */ /* color each block */ for (; a <= LAST_BLOCK(m); (char *)a += BLOCK_SIZE) { bd = Bdescr((P_)a); @@ -402,22 +404,12 @@ updateFrontPanel( void ) if (bd->free == (void *)-1) { colorBlock( a, &free_color, block_width, block_height, blocks_per_line ); - } else if (bd->gen != NULL) { - colorBlock( a, &gen_colors[bd->gen->no], + } else { + colorBlock( a, &gen_colors[bd->gen_no], block_width, block_height, blocks_per_line ); - } else if (bd->link != NULL) { - if (bd->link->free == (void *)-1) { - colorBlock( a, &free_color, - block_width, block_height, blocks_per_line ); - - } else if (bd->link->gen != NULL) { - colorBlock( a, &gen_colors[bd->link->gen->no], - block_width, block_height, blocks_per_line ); - } else { - belch("block at %p: can't indentify", bd->start); - } } } +#endif } @@ -614,7 +606,7 @@ residencyCensus( void ) g == 0 && s == 0) continue; if (RtsFlags.GcFlags.generations == 1) { - bd = generations[g].steps[s].to_space; + bd = generations[g].steps[s].to_blocks; } else { bd = generations[g].steps[s].blocks; } @@ -628,13 +620,10 @@ residencyCensus( void ) type = Other; switch (info->type) { - case BCO: - size = bco_sizeW((StgBCO *)p); - type = Other; - break; - + case CONSTR: - if (((StgClosure *)p)->header.info == &DEAD_WEAK_info) { + case BCO: + if (((StgClosure *)p)->header.info == &stg_DEAD_WEAK_info) { size = sizeofW(StgWeak); type = Other; break; @@ -685,7 +674,7 @@ residencyCensus( void ) type = BlackHole; break; - case AP_UPD: + case AP: size = pap_sizeW((StgPAP *)p); type = Thunk; break; @@ -716,6 +705,7 @@ residencyCensus( void ) case STABLE_NAME: case MVAR: case MUT_VAR: + case MUT_CONS: case IND_PERM: case IND_OLDGEN_PERM: size = sizeW_fromITBL(info);