diff options
author | andy@galois.com <unknown> | 2006-11-30 00:30:24 +0000 |
---|---|---|
committer | andy@galois.com <unknown> | 2006-11-30 00:30:24 +0000 |
commit | 71e810db51fb7f874f11f561303bd0bcb5e6d3d0 (patch) | |
tree | 9086b9d7c24b7982069e792e9aa419cfe575fe2d /rts/Hpc.c | |
parent | 4e3e91e26a8793a7fa5f308db8cc99b450b50981 (diff) | |
download | haskell-71e810db51fb7f874f11f561303bd0bcb5e6d3d0.tar.gz |
Misc unsigned printing issues; adding magicTixNumber.
Diffstat (limited to 'rts/Hpc.c')
-rw-r--r-- | rts/Hpc.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -20,9 +20,10 @@ #define DEBUG_HPC 0 -static int hpc_inited = 0; // Have you started this component? -static FILE *tixFile; // file being read/written -static int tix_ch; // current char +static int hpc_inited = 0; // Have you started this component? +static FILE *tixFile; // file being read/written +static int tix_ch; // current char +static StgWord64 magicTixNumber; // Magic/Hash number to mark .tix files typedef struct _Info { char *modName; // name of module @@ -124,7 +125,7 @@ static void hpc_init(void) { expect('i'); expect('x'); ws(); - expectWord64(); + magicTixNumber = expectWord64(); ws(); expect('['); ws(); @@ -156,7 +157,8 @@ static void hpc_init(void) { if (tix_ch == ',') { expect(','); ws(); - }} + } + } expect(']'); ws(); tixBoxes = (StgWord64 *)calloc(totalTixes,sizeof(StgWord64)); @@ -173,6 +175,9 @@ static void hpc_init(void) { expect(']'); fclose(tixFile); + } else { + // later, we will find a binary specific + magicTixNumber = (StgWord64)0; } } @@ -285,7 +290,7 @@ exitHpc(void) { comma = 0; - fprintf(f,"Tix 0 ["); + fprintf(f,"Tix %" PRIuWORD64 " [", magicTixNumber); tmpModule = modules; for(;tmpModule != 0;tmpModule = tmpModule->next) { if (comma) { @@ -293,11 +298,11 @@ exitHpc(void) { } else { comma = 1; } - fprintf(f,"(\"%s\",%d)", + fprintf(f,"(\"%s\",%u)", tmpModule->modName, tmpModule->tickCount); #if DEBUG_HPC - fprintf(stderr,"%s: %d (offset=%d)\n", + fprintf(stderr,"%s: %u (offset=%u)\n", tmpModule->modName, tmpModule->tickCount, tmpModule->tickOffset); |