summaryrefslogtreecommitdiff
path: root/rts/Hpc.c
diff options
context:
space:
mode:
authorandy@galois.com <unknown>2006-11-30 00:30:24 +0000
committerandy@galois.com <unknown>2006-11-30 00:30:24 +0000
commit71e810db51fb7f874f11f561303bd0bcb5e6d3d0 (patch)
tree9086b9d7c24b7982069e792e9aa419cfe575fe2d /rts/Hpc.c
parent4e3e91e26a8793a7fa5f308db8cc99b450b50981 (diff)
downloadhaskell-71e810db51fb7f874f11f561303bd0bcb5e6d3d0.tar.gz
Misc unsigned printing issues; adding magicTixNumber.
Diffstat (limited to 'rts/Hpc.c')
-rw-r--r--rts/Hpc.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/rts/Hpc.c b/rts/Hpc.c
index 50730ea70b..bfbbf67c8f 100644
--- a/rts/Hpc.c
+++ b/rts/Hpc.c
@@ -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);