Операционная система UNIX. Руководство программиста


Ctrace(1) - часть 2


34 while ((ch = getopt (argc, argv, "opr")) != EOF) /* argc == 2 */ /* argv == 2147483384 */ /* ch == 114 or 'r' */ { 35 switch (ch) /* ch == 114 or 'r' */ 42 case 'r': 43 rflag = TRUE; /* TRUE == 1 */ /* rflag == 1 */ 44 break; 50 }

34 while ((ch = getopt (argc, argv, "opr")) != EOF) /* argc == 2 */ /* argv == 2147483384 */ /* ch == -1 */ 52 if ((fin = fopen ("info", "r")) == NULL) /* fin == 1052602 */ 59 if (fscanf (fin, "%s%f%f%f%f%f%f", first.pname, &first.ppx, &first.dp, &first.i, &first.c, &first.t, &first.spx) != 7) /* fin == 1052602 */ /* first.pname == 2147483294 */ 68 printf ("Наименование: %s\n", first.pname); /* first.pname == 2147483294 or "Tutti_Frutti" */ Наименование: Tutti_Frutti

70 if (oflag) /* oflag == 1 */ 71 printf ("Приемлемая цена: $%#5.2f\n", oppty (&first)); 5 oppty (ps) 8 return (ps->i/12 * ps->t * ps->dp); /* ps->i == 1074108825 */ /* ps->t == 1073741824 */ /* ps->dp == 1074339512 */ Приемлемая цена: $4321.00

73 if (pflag) /* pflag == 1 */ 74 printf ("Ожидаемая прибыль (потери): $%#7.2f\n", pft (&first)); 5 pft (ps) 8 return (ps->spx - ps->ppx + ps->c); /* ps->spx == 1076101120 */ /* ps->ppx == 1072693248 */ /* ps->c == 1073259479 */ Ожидаемая прибыль (потери): $12345.00

77 if (rflag) /* rflag == 1 */ 78 printf("Фондоотдача: %#3.2f%%\n", rfe (&first)); 5 rfe (ps) 8 return (100 * (ps->spx - ps->c) / ps->spx); /* ps->spx == 1076101120 */ /* ps->c == 1073259479 */ Фондоотдача: 95.00%

/* return */

Используя в качестве примера правильно работающую программу, трудно продемонстрировать возможности ctrace. Интереснее было бы обнаружить с помощью ctrace ошибку. По-видимому, эта утилита наиболее полезна в случае, когда программа выполняется до конца, но ее результат не совпадает с ожидаемым.




- Начало -  - Назад -  - Вперед -