Fixed message tracing on comm thread (to trace those entry methods that need
[charm.git] / src / ck-perf / trace-memory.h
index cd5177811242362bacc382f402c5ba64e089b5a2..3490c4093d368c7a96edf8362b29db7c19a40f43 100644 (file)
@@ -9,18 +9,25 @@
 /** A representant of a memory operation */
 
 class MemEntry {
+  friend class TraceMemory;
  private:
   int type;
   void *where;
   int size;
+  int stackSize;
   
  public:  
   MemEntry();
   void write(FILE *fp);
-  void set(int t, void *w, int s=0) {
+  void set(int t, void *w, int s) {
     type = t;
     where = w;
     size = s;
+    stackSize = 0;
+  }
+  void setStack(int ss, void **s) {
+    stackSize = ss;
+    memcpy(this+1, s, ss*sizeof(void*));
   }
 };
 
@@ -33,15 +40,19 @@ class TraceMemory : public Trace {
   int firstTime;
   int logBufSize;
   int usedBuffer;
-  MemEntry *logBuffer;
-  void checkFlush();
+  bool recordStack;
+  char *logBuffer;
+  bool traceDisabled;
+
+  void checkFlush(int add);
   void flush();
  public:
   TraceMemory(char **argv);
   
+  void traceBegin();
   void traceClose();
-  void malloc(void *where, int size);
-  void free(void *where);
+  void malloc(void *where, int size, void **stack, int stackSize);
+  void free(void *where, int size);
 };
 
 #endif