OpenCores
URL https://opencores.org/ocsvn/igor/igor/trunk

Subversion Repositories igor

[/] [igor/] [trunk/] [simulator/] [tracediff.c] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 atypic
#include <stdio.h>
2
 
3
/*  Simple program to find differences between hwemulator
4
    execution path and execution path of the accual cpu */
5
 
6
int main(char argc, char** argv) {
7
    char logbuffer[6];
8
    char emubuffer[6];
9
    int lognumber = 0;
10
    int emunumber = 0;
11
    if ( argc != 4 ) {
12
        printf("Illegal number of arguments\n");
13
        printf("Usage: %s logtrace emutrace entrypoint\n",argv[0]);
14
        return -1;
15
    }
16
 
17
 
18
    FILE* logtrace = fopen(argv[1],"r");
19
    FILE* emutrace = fopen(argv[2],"r");
20
 
21
    if ( logtrace == NULL || emutrace == NULL) {
22
        printf("fopen failed\n");
23
        fclose(logtrace);
24
        fclose(emutrace);
25
        return -1;
26
    }
27
 
28
    printf("Searching for %s\n", argv[3]);
29
    // Lets find our entry point
30
    while ( fgets(logbuffer,6,logtrace) != NULL ) {
31
            lognumber++;
32
            if ( strncmp(logbuffer,argv[3],4) == 0 ) {
33
                break;
34
            }
35
    }
36
    while ( fgets(emubuffer,6,emutrace) != NULL ) {
37
            emunumber++;
38
            if ( strncmp(emubuffer,argv[3],4) == 0 ) {
39
                break;
40
            }
41
    }
42
    printf("Found entry points:\nLEVAL:%sEMU:%s",logbuffer,emubuffer);
43
    printf("Tracing\n");
44
    while( fgets(logbuffer,6,logtrace) != NULL && fgets(emubuffer,6,emutrace) != NULL) {
45
        emunumber++;
46
        lognumber++;
47
        if ( strcmp( logbuffer, emubuffer) != 0 ) {
48
            printf("Different path: \nLEVAL:%d %sEMU:%d %s",lognumber, logbuffer,emunumber,emubuffer);
49
            break;
50
        }
51
    }
52
 
53
    fclose(logtrace);
54
    fclose(emutrace);
55
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.