Store task-like results in named C scalar slots before summarizing them.

Task Result Slots

readCount
task_result_slots.c
Replay: real traced execution (multi-file project)
#include <stdio.h>

int main(void) {
    int readCount = 12;
    int writeCount = readCount + 3;
    int verifyCount = 2;
    int total = readCount + writeCount + verifyCount;

    printf("read=%d\n", readCount);
    printf("write=%d\n", writeCount);
    printf("verify=%d\n", verifyCount);
    printf("total=%d\n", total);
    return 0;
}
#include <stdio.h>

int main(void) {
    int readCount = 8;
    int writeCount = readCount + 3;
    int verifyCount = 2;
    int total = readCount + writeCount + verifyCount;

    printf("read=%d\n", readCount);
    printf("write=%d\n", writeCount);
    printf("verify=%d\n", verifyCount);
    printf("total=%d\n", total);
    return 0;
}
#include <stdio.h>

int main(void) {
    int readCount = 15;
    int writeCount = readCount + 3;
    int verifyCount = 2;
    int total = readCount + writeCount + verifyCount;

    printf("read=%d\n", readCount);
    printf("write=%d\n", writeCount);
    printf("verify=%d\n", verifyCount);
    printf("total=%d\n", total);
    return 0;
}
  1. readCount ← 12, writeCount ← 15, verifyCount ← 2, total ← 29

    3int main(void) {4    int readCount→ 12 = 12; //@readCount=8, 155    int writeCount→ 15 = readCount12 + 3;6    int verifyCount→ 2 = 2;7    int total→ 29 = readCount12 + writeCount15 + verifyCount2;89    printf("read=%d\n", readCount12);10    printf("write=%d\n", writeCount15);11    printf("verify=%d\n", verifyCount2);12    printf("total=%d\n", total29);13    return 0;14}
    outputread=12
    write=15
    verify=2
    total=29
  1. readCount ← 8, writeCount ← 11, verifyCount ← 2, total ← 21

    3int main(void) {4    int readCount→ 8 = 8;5    int writeCount→ 11 = readCount8 + 3;6    int verifyCount→ 2 = 2;7    int total→ 21 = readCount8 + writeCount11 + verifyCount2;89    printf("read=%d\n", readCount8);10    printf("write=%d\n", writeCount11);11    printf("verify=%d\n", verifyCount2);12    printf("total=%d\n", total21);13    return 0;14}
    outputread=8
    write=11
    verify=2
    total=21
  1. readCount ← 15, writeCount ← 18, verifyCount ← 2, total ← 35

    3int main(void) {4    int readCount→ 15 = 15;5    int writeCount→ 18 = readCount15 + 3;6    int verifyCount→ 2 = 2;7    int total→ 35 = readCount15 + writeCount18 + verifyCount2;89    printf("read=%d\n", readCount15);10    printf("write=%d\n", writeCount18);11    printf("verify=%d\n", verifyCount2);12    printf("total=%d\n", total35);13    return 0;14}
    outputread=15
    write=18
    verify=2
    total=35
result slot Named result variables make replay easier to follow than a hidden callback table.