diff --git a/system/main.c b/system/main.c index 15332f571d..89af0c1449 100644 --- a/system/main.c +++ b/system/main.c @@ -102,9 +102,19 @@ int main(int argc, char **argv) argc -= 5; - unsigned long deltas[input_size]; unsigned int num_tasks = 5; - u_int32_t inputs[input_size]; + int full_input_room = (int) pow(input_size, num_tasks); + printf("Full input room: %d\n", full_input_room); + unsigned long *deltas = malloc(full_input_room * sizeof(unsigned long)); + if (deltas == NULL) { + fprintf(stderr, "Memory allocation failed\n"); + exit(1); + } + u_int32_t *inputs = malloc(full_input_room * sizeof(u_int32_t)); + if (inputs == NULL) { + fprintf(stderr, "Memory allocation failed\n"); + exit(1); + } //========= Instrumentation end qemu_init(argc, argv); //========= Instrumentation start @@ -127,8 +137,9 @@ int main(int argc, char **argv) int task_inputs[num_tasks]; // input of all tasks combined - for (long i = 0; i < pow(input_size, num_tasks); i++) + for (long i = 0; i < full_input_room; i++) { + printf("Input: %lu\n", i); for (int j = 0; j < num_tasks; j++) { // from the "global input" i, extract the input bits for the task j @@ -195,12 +206,14 @@ int main(int argc, char **argv) // qemu_chr_fe_write(serial_chr, data, length); FILE *fptr = fopen(output_path, "w"); - for (int i = 0; i < input_size; i++) + for (int i = 0; i < full_input_room; i++) { fprintf(fptr, "%d,%lu\n", inputs[i], deltas[i]); } - + fclose(fptr); + free(deltas); + free(inputs); // // Write some text to the file // fprintf(fptr, "%lu",delta); return 0;