fix a bug
[c11tester.git] / snapshot-interface.cc
index fdabcf33549349acb203ac201608461aa25d049c..bf12fe8ae77f60471327b8cd9ccc41a4521acb9a 100644 (file)
@@ -22,12 +22,12 @@ struct snapshot_entry {
 };
 
 class SnapshotStack {
- public:
+public:
        int backTrackBeforeStep(int seq_index);
        void snapshotStep(int seq_index);
 
        MEMALLOC
- private:
+private:
        ModelVector<struct snapshot_entry> stack;
 };
 
@@ -64,15 +64,17 @@ static void SnapshotGlobalSegments()
                char smstr[23];
                char r, w, x;
                char mr, mw, mx;
-               int size;
                void *begin, *end;
 
                //Skip out at the end of the section
                if (buf[0] == '\n')
                        break;
 
-               sscanf(buf, "%22s %p-%p [%5dK] %c%c%c/%c%c%c SM=%3s %200s\n", type, &begin, &end, &size, &r, &w, &x, &mr, &mw, &mx, smstr, regionname);
+               sscanf(buf, "%22s %p-%p", type, &begin, &end);
 
+               char * secondpart = strstr(buf, "]");
+
+               sscanf(&secondpart[2], "%c%c%c/%c%c%c SM=%3s %200s\n", &r, &w, &x, &mr, &mw, &mx, smstr, regionname);
                if (w == 'w' && strstr(regionname, MYBINARYNAME)) {
                        size_t len = ((uintptr_t)end - (uintptr_t)begin) / PAGESIZE;
                        if (len != 0)
@@ -139,7 +141,7 @@ static void SnapshotGlobalSegments()
 int SnapshotStack::backTrackBeforeStep(int seqindex)
 {
        int i;
-       for (i = (int)stack.size() - 1; i >= 0; i++)
+       for (i = (int)stack.size() - 1;i >= 0;i++)
                if (stack[i].index <= seqindex)
                        break;
                else