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


CFLOW(1)


CFLOW(1)

НАЗВАНИЕ


cflow - построение графа вызовов C-программ

СИНТАКСИС

cflow [-r] [-ix] [-i_] [-dчисло] файл ...

ОПИСАНИЕ


Команда cflow анализирует набор C-, YACC-, LEX-, а также ассемблерных и об ектных файлов и пытается построить граф внешних ссылок. Файлы с расширениями .y (для YACC), .l (для LEX), .c (для C) и .i (для промежуточного кода) соответствующим образом препроцессируются (файлы .i игнорируются), а затем подвергаются первому проходу программы . (Допускается использование опций -I, -D и -U препроцессора C.) Файлы с расширением .s ассемблируются, и информация извлекается (как и в случае .o-файлов) из таблицы имен. Результат всей этой нетривиальной обработки накапливается и преобразуется в граф внешних ссылок, который направляется на стандартный вывод.

Строки выходной информации пронумерованы, начиная с 1. За номером следует несколько символов табуляции, указывающих уровень вложенности. Затем идет имя глобального об екта (обычно выдаются только функции, не определенные как внешние, и с именами, не начинающимися с подчеркивания; см. ниже описание опции включения -i), двоеточие и определение глобального об екта. Если определение извлечено из C-текста, оно состоит из описания типа (например, char *), а также из заключенных в угловые скобки имени исходного файла и номера строки, в которой найдено данное определение. В определениях, взятых из об ектных файлов, информативным является только имя файла. Начальные подчеркивания из C-подобных внешних имен удаляются.

После того, как определение имени напечатано, ссылки на него содержат только номер соответствующей выходной строки. Для неопределенных ссылок печатается <>.

В качестве примера рассмотрим следующий файл f1.c:

int i;

main() { f(); g(); f(); }

f() { i = h(); }

Команда

cflow -ix f1.c

сформирует результат:

1 main: int(), <file.c 4> 2 f: int(), <file.c 11> 3 h: <> 4 i: int, <file.c 1> 5 g: <>

Если уровень вложенности слишком большой, можно использовать опцию -e команды , чтобы табуляция вызывала сдвиг менее чем на восемь позиций.




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