Unix Man (Справочное руководство)


CTRACE(1) - часть 4


#ifdef CTRACE if (c == '!" && i > 1000) ctron (); #endif

Если программа оттранслирована с опцией -g, функции включения/выключения трассировки можно вызвать из отладчика . Например, чтобы отслеживать выполнение всех строк главной программы, кроме интервала строк с седьмой по десятую, введите следующие команды:

sdb a.out main:7b ctroff() main:11b ctron() r

Допускается также выключение и включение трассировки установкой значения переменной tr_ct_ в 0 или 1 соответственно. Такой способ целесообразен, если используется отладчик, который не предоставляет возможности вызвать функции ctroff( ) и ctron( ) непосредственно.

ФАЙЛЫ

/usr/lib/ctrace/runtime.c

Трассировочное окружение времени выполнения.

СМ. ТАКЖЕ


, .

, , , , , в Справочнике программиста.

ДИАГНОСТИКА


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

Диагностика отладчика ctrace

warning: some variables are not traced in this statement В каждом операторе отслеживаются только 10 переменных, чтобы избежать ошибки C-компилятора "out of tree space; simplify expression" (исчерпано пространство для дерева, упростите выражение). Для увеличения числа отслеживаемых переменных используйте опцию -t. warning: statement too long to trace Оператор имеет длину более 400 символов. Чтобы уменьшить длину, используйте для выделения отступов символы табуляции, а не пробелы. cannot handle preprocessor code, use -P option Обычно это происходит, когда в середине C-оператора есть директивы препроцессора #ifdef/#endif или в конце директивы препроцессора #define стоит символ точки с запятой. 'if...else if' sequence too long Упростите конструкцию, удалив ключевое слово else из середины. possible syntax error, try -P option Попробуйте использовать опцию -P для обработки исходного файла с соответствующими опциями препроцессора -D, -I, или -U. Если диагностическое сообщение не исчезло, посмотрите разделы предупреждений ниже.




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



Книжный магазин