/* Stage 3: fixed name length bug, imgbuf uses malloc (seg fault) */ /*!03!*/ char *fname = (char*)malloc(sizeof(char)*FNAME_SIZE); /*!03!*/ char *buf = (char*)malloc(sizeof(char)*BUF_SIZE); /*!03!*/ { fprintf(stderr, "&j = %lld\n", dbg(&i,&j,&j)); /*?1?*/ fprintf(stderr, "&(buf[0]) = %lld\n", dbg(&i,&j,&(buf[0]))); /*?1?*/ fprintf(stderr, "&(buf[L]) = %lld\n", dbg(&i,&j,&(buf[BUF_SIZE-1]))); /*?1?*/ fprintf(stderr, "&kind = %lld\n", dbg(&i,&j,&kind)); /*?1?*/ fprintf(stderr, "&repeat = %lld\n", dbg(&i,&j,&repeat)); /*?1?*/ fprintf(stderr, "&(fname[0]) = %lld\n", dbg(&i,&j,&(fname[0]))); /*?1?*/ fprintf(stderr, "&(fname[L]) = %lld\n", dbg(&i,&j,&(fname[FNAME_SIZE-1]))); /*?1?*/ fprintf(stderr, "&i = %lld\n", dbg(&i,&j,&i)); /*?1?*/ fprintf(stderr, "\n"); /*?1?*/ fprintf(stderr, "before show-image\n"); /*?1?*/ fprintf(stderr, "j = %d\n", j); /*?1?*/ fprintf(stderr, "i = %d\n", i); /*?1?*/ fprintf(stderr, "fname = \"%s\"\n", fname); /*?1?*/ fprintf(stderr, "kind = '%c'\n", kind); /*?1?*/ fprintf(stderr, "repeat = %0x\n", repeat); /*?1?*/ dump_mem(&i,&j,&(buf[0]), BUF_SIZE+FNAME_SIZE+20); /*?1?*/ /*?1?*/ fprintf(stderr, "\n"); /*?1?*/ fprintf(stderr, "after show-image j = %d\n", j); /*?1?*/ fprintf(stderr, "j = %d\n", j); /*?1?*/ fprintf(stderr, "i = %d\n", i); /*?1?*/ fprintf(stderr, "fname = \"%s\"\n", fname); /*?1?*/ fprintf(stderr, "kind = '%c'\n", kind); /*?1?*/ fprintf(stderr, "repeat = %0x\n", repeat); /*?1?*/ dump_mem(&i,&j,&(buf[0]), BUF_SIZE+FNAME_SIZE+20); /*?1?*/ fprintf(stderr, "\n"); /*?1?*/ /*?1?*/ } /*?1?*/ /* Returns {max(p-a,p-b)} as a signed int: */ /*?1?*/ int64_t dbg(void *a, void *b, void *p); /*?1?*/ /*?1?*/ /* Prints {n} bytes starting at {p}, numbered by {dbg(a,b,p)}: */ /*?1?*/ void dump_mem(void *a, void *b, void *p, int n); /*?1?*/ int64_t dbg(void *a, void *b, void *p) /*?1?*/ { /*?1?*/ int64_t ca = ((int64_t)(int32_t)p) - ((int64_t)(int32_t)a); /*?1?*/ int64_t cb = ((int64_t)(int32_t)p) - ((int64_t)(int32_t)b); /*?1?*/ return (ca > cb ? ca : cb); /*?1?*/ } /*?1?*/ /*?1?*/ void dump_mem(void *a, void *b, void *p, int n) /*?1?*/ { /*?1?*/ int j; /*?1?*/ for (j = 0; j < n; j++) /*?1?*/ { if ((j % 10) == 0) /*?1?*/ { fprintf(stderr, "\nm[%4lld] = ", dbg(a,b,p) + j); } /*?1?*/ fprintf(stderr, "%c", ((char *)p)[j]); /*?1?*/ } /*?1?*/ fprintf(stderr, "\n"); /*?1?*/ } /*?1?*/