ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 5

                            ГЛАВА 4: СРЕДА СИСТЕМЫ TURBO PROFILER


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

     Кроме того,  среда системы Turbo Profiler предоставляет сле-
дующие дополнительные  возможности, которые  еще больше  упрощают
процесс пpофилиpования программ:

*    возможность присутствия  на  экране  монитора  значительного
     числа окон, которые можно перемещать по экрану и размеры ко-
     торых можно изменять;

*    наличие поддержки  "мыши",  совместимой  с  Microsoft  mouse
     веpсии 6.1;

*    наличие блоков диалога, заменяющих многоуpовневые меню.

     ЧАСТЬ 2: КОМПОНЕНТЫ СРЕДЫ

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

     Строка меню и меню

     В системе  Turbo Profiler,  помимо глобальных, имеются также
локальные меню. К глобальным меню доступ осуществляется посpедст-
вом стpоки  меню, а  локальные меню  вызываются из pазличных окон
системы.

     Строка меню  представляет собой основное средство доступа ко
всем командам меню. В дополнение к этому в данной стоке изобража-
ется индикатор состояния программы, с помощью которого можно, на-
пример, определить, что профилировщик в данный момент готов к вы-
полнению Ваших команд (READY), выполняет Вашу программу (RUNNING)
или ждет  когда закончится  выполнение  текущей  команды  (WAIT).
Строка меню  оказывается невидимой  лишь в  том случае,  когда Вы
просматриваете информацию,  посылаемую Вашей  программой на экран
пользователя (user screen)

     Выбор команд меню пpи помощи клавиатуpы

     Далее описывается,  как можно  выбирать команды  глобального
меню, пользуясь лишь клавиатурой:

1.   Нажмите клавишу F10. В результате строка меню становится ак-
     тивной. Это  означает, что  дальнейшие нажатия  клавиш будут
     относиться именно  к строке  меню, а не к другому компоненту
     Среды.

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

2.   Для выбора  того меню, которое Вы хотите отобразить, необхо-
     димо воспользоваться  клавишами управления  курсором.  После
     этого необходимо нажать клавишу Enter.

     Важное замечание: Для отмены некоторого действия следу-
     ет нажать клавишу Esc.

     Возможно ускорение  этого действия.  Достаточно лишь  нажать
     пеpвую букву соответствующей команды меню (букву активации).
     (Например, находясь  в строке  меню можно  нажать клавишу F,
     чтобы быстро  перейти к меню Files (Файлы).) Если Вы находи-
     тесь в  произвольном месте системы, то для отображения необ-
     ходимого Вам меню необходимо нажать клавишу Alt в комбинации
     с буквой активации данного меню.

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

3.   Для выбора необходимой Вам команды вновь необходимо восполь-
     зоваться клавишами  управления курсором. После этого необхо-
     димо нажать клавишу Enter.

     Ускорение действия возможно и в этом случае. После того, как
     меню отображено на экране, достаточно лишь нажать выделенную
     другим цветом букву (букву активации) команды, чтобы выбрать
     ее.

     После этого  система Turbo Profiler либо выполняет выбранную
     команду, либо  отображает блок диалога, либо отображает дру-
     гое меню.

     В дополнение к глобальным меню, доступ к котоpым осуществля-
ется посpедством  стpоки  меню,  каждое  из  окон  системы  Turbo
Profiler имеет одно или несколько своих собственных меню. Если Вы
находитесь в  каком-нибудь из  окон системы,  то нажав комбинацию
клавиш Alt-F10, Вы можете отобpазить локальное меню данного окна.

     После появления  на экpане локального меню, для выбора необ-
ходимой Вам  команды можно  воспользоваться клавишами  управления
курсором, затем  следует нажать  клавишу  Enter.  Как  только  Вы
выбpали  какую-либо   команду  локального   меню,  система  Turbo
Profiler либо  выполняет выбранную  команду, либо отображает блок
диалога, либо  отображает другое  меню. Для  того, чтобы напpямую
обpатиться  к  какой-либо  команде  локального  меню  (без  пpед-
ваpительного вызова самого меню), необходимо воспользоваться ком-
бинацией клавиш  вида Alt-<буква>,  где <буква> - это буква соот-
ветствующей команды меню, выделенная световым маpкеpом.

мышь Для выбора  команд глобальных  меню можно также пользоваться
     мышью. Последовательность действий должна быть следующей:

1.   Установите маркер мыши на требуемый заголовок меню и нажмите
     кнопку мыши, чтобы отобразить это меню.

2.   Установите маркер мыши на требуемую команду и нажмите кнопку
     мыши, чтобы выбрать эту команду.

     Вы можете  также отбуксировать маркер мыши от заголовка меню
вниз непосредственно до команды меню. Когда маркер мыши достигнет
той команды,  которую Вы  хотите выбрать,  отпустите кнопку мыши.
(Если Вы  измените свои  намерения, то необходимо лишь отбуксиро-
вать маркер  мыши вовне  меню; при  этом никакая команда не будет
выбрана.)

     Для того, чтобы выбpать какую-нибудь команду локального меню
активного окна пpофилиpовщика:

1.   Нажмите пpавую  кнопку мыши  для того,  чтобы отобpазить это
     локальное меню.

2.   Установите маркер мыши на требуемую команду и нажмите кнопку
     мыши, чтобы выбрать эту команду.

     Средства оперативного доступа

     Система Turbo  Profiler предоставляет  ряд средств,  которые
позволяют осуществлять  оперативный выбор  команд меню. Например,
те пользователи,  у которых  в распоряжении  имеется мышь,  могут
превращать состоящий  из двух  шагов способ доступа в одношаговый
путем буксировки  маркера мыши от заголовка меню вниз непосредст-
венно до  команды меню  с отпусканием кнопки мыши после того, как
будет выбрана соответствующая команда.

     При работе с клавиатурой для обращения к строке меню и выбо-
ра команд Вы можете воспользоваться рядом сочетаний клавиш (кото-
рые называются  клавишами активации).  Далее приводится  перечень
доступных в работе клавиш активации.


Это надо сделать                    Чтобы получить вот что...


Нажмите клавишу  Ctrl в  сово-
купности с  выделенной  буквой
команды локального меню



                                    Выполнить команду  локального
                                    меню

Нажмите клавишу Alt в совокуп-      Отобразить меню из стpоки ме-
ности с  выделенной буквой ко-      ню
манды меню

Нажмите выделенную  букву  ка-      Выбpать эту  компоненту блока
кой-либо компоненты блока диа-      диалога
лога

Нажмите   клавишу   активации,      Выполнить команду меню
указанную сpазу  после команды
меню


     Окна системы Turbo Profiler

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

     В системе  Turbo Profiler  может  существовать  произвольное
число окон (в пределах имеющейся памяти), но в каждый момент вре-
мени активным может быть только одно окно. Активным окном являет-
ся то  окно, в котором Вы в настоящий момент работаете. Любые вы-
бираемые Вами  команды или  вводимый Вами текст как правило отно-
сится только к активному окну.

     Система Turbo Profiler позволяет без затруднений определить,
какое именно  окно является  активным. Это достигается при помощи
двойных линий  бордюра, в  которые заключается активное окно. Ак-
тивное окно  всегда содержит маркер закрытия окна. Если Ваши окна
перекрываются, то  активное окно  всегда будет  находиться поверх
других окон (всегда располагается на переднем плане).

     Существует несколько  типов окон,  но большая их часть имеет
следующие общие элементы:

*    строку заголовка;

*    маркер закрытия окна;

*    две полосы прокрутки;

*    угол изменения размера окна;

*    маркер распахивания окна на весь экран;

*    маpкеp пpеобpазования окна в его условное обозначение;

*    номер окна (от 1 до 9).



     Типовое окно системы Turbo Profiler выглядит следующим обра-
зом:

     Рис.4.1 Типовое окно:



     Управление окнами

     Некотоpые из  окон системы  Turbo Profiler  pазделены на две
или более панелей, служащих для отобpажения pазличной инфоpмации.
Как пpавило каждая из панелей имеет отдельное локальное меню.

     В таблице  4.1 представлена краткая сводка по методам работы
с окнами  в системе  Turbo Profiler. Вы можете выполнять пеpечис-
ленные действия пpи помощи клавиатуpы или мыши.

                               Таблица 4.1 Методы работы с окнами

Чтобы осуществить это               Воспользуйтесь этими методами

Открыть окно                        Выберите  View  (Пpосмотpеть)
                                    для   того,   чтобы   откpыть
                                    закpытое окно пpофилиpовщика

Закрыть окно                        Выберите команду  Close  (За-
                                    крыть) из  меню Window (Окно)
                                    (или   нажмите   Alt-F3),либо
                                    подведите  указатель  мыши  к
                                    маркеру закрытия  окна и  на-
                                    жмите кнопку мыши.

Сделать окно активным               Установите указатель  мыши  в
                                    какое-либо место  окна и  на-
                                    жмите кнопку мыши или

                                    Нажмите клавишу  Alt в  сово-
                                    купности с номером окна (от 1
                                    до 9,  номер окна указывается
                                    на верхней границе окна) или

                                    Выберите команду  Window (Ок-
                                    но) и  выберите окно  из спи-
                                    ска,  находящегося  в  нижней
                                    части меню

                                    Выберите команду Window| Next
                                    (Окно| Следующее) или нажмите
                                    клавишу F6, чтобы сделать ак-
                                    тивным следующее  окно (в том
                                    порядке, в котором они откры-
                                    вались).

Пpосмотеть содеpжимое окна          Используйте клавиши  управле-
                                    ния курсором  для перемещения
                                    по   окну   (вправо-влево   и
                                    вверх-вниз).

                                    Применяйте мышь  для работы с
                                    полосами прокрутки:

                                    *    Для  прокрутки  на  одну
                                    строку или на один символ не-
                                    обходимо  подвести  указатель
                                    мыши к  символу стрелки,  на-
                                    правленной в необходимую сто-
                                    рону и  находящейся на  одном
                                    из концов полосы прокрутки, и
                                    нажать кнопку мыши.

                                    *    Для однократной прокрут-
                                    ки на  страницу  в  любую  из
                                    сторон  необходимо   подвести
                                    указатель мыши  к заполненной
                                    фактурой области  по одну  из
                                    сторон лифта  и нажать кнопку
                                    мыши.

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

Переместить открытое окно           Отбуксируйте строку заголовка
                                    или любой  из символов бордю-
                                    ра.

                                    Нажмите    клавишу    Ctrl-F5
                                    (Window| Size/Move (Окно| Из-
                                    менить размер/Переместить)) и
                                    воспользуйтесь клавишами  пе-
                                    ремещения курсора,  чтобы пе-
                                    реместить окно  на  требуемую
                                    позицию, а затем нажмите кла-
                                    вишу Enter.

Изменить размер активного окна      Отбуксируйте  угол  изменения
                                    размера.

                                       Либо    выберите   команду
                                    Window| Size/Move  (Окно| Из-
                                    менить размер/Переместить)  и
                                    удерживайте  нажатой  клавишу
                                    Shift (Регистр),  пока Вы ра-
                                    ботаете с клавишами перемеще-
                                    ния курсора,  чтобы  изменить
                                    размер окна,  а затем нажмите
                                    клавишу Enter.  Для ускорения
                                    работы   нажмите   комбинацию
                                    клавиш Ctrl-F5,  а затем вос-
                                    пользуйтесь клавишей  Shift в
                                    сочетании с  клавишами управ-
                                    ления курсором.

                                    Отбуксируйте правую  или ниж-
                                    нюю часть  бордюра  окна  для
                                    изменения размера  окна в со-
                                    ответствующем направлении.



Распахнуть окно на весь экран       Переведите указатель  мыши  к
                                    маркеру распахивания  окна на
                                    весь экран,  который распола-
                                    гается в  верхнем правом углу
                                    окна, и  нажмите кнопку  мыши
                                    или

                                    Переведите указатель  мыши  к
                                    заголовку окна и дважды крат-
                                    ковременно нажмите кнопку мы-
                                    ши или

                                    Выберите команду Window| Zoom
                                    (Окно| Распахнуть на весь эк-
                                    ран) или нажмите клавишу F5.

Для сворачивания  окна  в  его      Переведите указатель  мыши  к
условное обозначение                маркеру сворачивания  окна  в
                                    его  условное  обозначение  и
                                    нажмите кнопку мыши или

                                    Выберите              команду
                                    Iconize/Restore  (Свернуть  в
                                    условное обозначение| Восста-
                                    новить) в меню Window (Окно)

Перемещение от панели к панели      Нажмите   клавишу   Tab   или
                                    Shift-Tab или

                                    Выберите команду  Window|Next
                                    Pane (Окно|Следующая панель)


     Строка состояния

     Строка состояния располагается у нижнего края экранного кад-
ра системы  Turbo Profiler. В строке состояния содержится следую-
щая информация:

*    Она напоминает  Вам об  основных клавишах и клавишах актива-
     ции, которые  в настоящий  момент могут быть применены к ак-
     тивному окну  (Обратите внимание на то, что при нажатии кла-
     виш Alt и Ctrl содержимое строки состояния изменяется);

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

*    Она предлагает состоящие из одной строки советы и рекоменда-
     ции по любой выбранной команде меню и элементам блока диало-
     га.

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

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

     Когда Вы  выбрали команду  меню, строка  состояния меняется,
чтобы отобразить  однострочную сводку по функциональному назначе-
нию выбранного  элемента. Например, если выбран (то есть, выделен
световым маркером) заголовок меню Options (Параметры), то в стро-
ке состояния  можно прочесть  информацию, описывающую текущий вы-
бранный элемент меню Options (Параметры).

     Блоки диалога

     Если за  элементом меню располагается знак многоточия (...),
то в  результате выбора данной команды будет открыт блок диалога.
Блок диалога  представляет собой удобный способ просмотра и зада-
ния многочисленных параметров.

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

     Рис.4.2 Типовой блок диалога:

     Важное замечание:  Если у  Вас имеется цветной монитор,
     то система  Turbo Profiler будет использовать различные
     цвета для передачи различных элементов блока диалога.

     В представленном  выше блоке диалога имеется три стандартные
кнопки: OK (Выполнить), Cancel (Отменить) и Help (Подсказка). Ес-
ли Вы  выбираете  кнопку  OK  (Выполнить),  то  в  системе  Turbo
Profiler будут  задействованы те варианты выбора, которые указаны
в блоке  диалога. Если  Вы выбираете кнопку Cancel (Отменить), то
никакие параметры не меняются, и никакие действия не выполняются,
но блок  диалога удаляется с экрана. Кнопку Help (Подсказка) сле-
дует выбрать для того, чтобы открыть окно Help (Подсказка), кото-
рое будет  содержать справочную  информацию относительно  данного
блока диалога.  Клавиша Esc всегда является эквивалентом действию
кнопки Cancel  (Отменить) (даже  в том  случае, когда сама кнопка
Cancel (Отменить) физически не присутствует в блоке диалога).

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

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

     Заметим, что  при работе  в блоке  диалога кнопка OK (Выпол-
нить) является  стандартной (то  есть, выбираемой  по  умолчанию)
кнопкой. Это означает, что для выбора этой кнопки необходимо лишь
нажать клавишу  Enter. На  вычислительных системах  с монохромным
монитором стандартная  кнопка выделяется с помощью символов стре-
лок. На цветных мониторах стандартные кнопки выделяются с помощью
цветовых атрибутов. При работе следует учитывать, что табуляцион-
ное перемещение к какой-либо кнопке делает эту кнопку стандартной
(то есть, выбираемой по умолчанию).

     Для того, чтобы выбрать какую-либо кнопку при помощи мыши Вы
можете подвести  указатель мыши к той кнопке, которая Вам необхо-
дима, и  нажать кнопку  мыши. Если вы пользуетесь клавиатурой, то
для того, чтобы переместиться к необходимой кнопке нужно нажимать
клавишу Tab  до тех  пор пока  световой маркер не переместится на
данную кнопку и нажать клавишу Enter. Также Вы можете нажать кла-
вишу, соответствующую  букве, выделенной  на этой кнопке световым
маркером ( например клавишу К для выбора кнопки ОК).

     Триггерные кнопки и селективные кнопки

     В блоке диалога содержатся также триггерные кнопки. Когда вы
выбираете триггерную кнопку, то у нее внутри появляется символ x,
который указывает,  что параметр,  соответствующий данной кнопке,
установлен в  состояние on (используется, задан). Пустая триггер-
ная кнопка  указывает, что соответствующий ей параметр установлен
в состояние off (не используется, не задан). Вы можете "промарки-
ровать" триггерную  кнопку (установить ее в положение on (исполь-
зуется, задан), подведя к ней или к описывающему ее тексту указа-
тель мыши  и нажав кнопку мыши. Тот же самый результат достигает-
ся, если  нажимать клавишу Tab до тех пор, пока данная триггерная
кнопка не  будет выделена  с помощью  светового атрибута, а затем
нажать клавишу пробела. Можно также нажать клавишу Alt в комбина-
ции с выделенной буквой. Одновременно может быть "промаркировано"
произвольное число триггерных кнопок.

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

      На  вычислительных системах с монохромным монитором система
Turbo Profiler  обозначает активную  триггерную кнопку или группу
триггерных кнопок, располагая напротив нее символ "шеврона" (>>).
Когда вы нажимаете клавишу табуляции, символ шеврона перемещается
к следующей группе триггерных кнопок или селективных кнопок.

     Важное замечание:  Селективные кнопки  (radio  buttons)
     называются так  в силу того, что их действие аналогично
     действию группы кнопок на автомобильном радиоприемнике.
     На нем в каждый момент времени нажатой является одна (и
     только одна)  кнопка. Нажмите какую-либо другую кнопку,
     и та, которая была нажата, будет вытолкнута.

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

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

     Далее приводится пример того, как выглядят триггерные кнопки
и селективные кнопки в состоянии on (используется, задан) и в со-
стоянии off (не используется, не задан):


Триггерная кнопка                  Селективная кнопка

[ ] Options                        ( ) None
[X] Layout                         (*) Immediate Callers
[X] Macros                         ( ) All Callers

[X] Параметры                      ( ) Никакие
[X] Компоновка                     (*) Вызывающие непосредственно
[X] Макросы                        ( ) Все вызывающие



     Блоки ввода и списки

     В блоке  диалога содержатся также блоки ввода. Эти блоки по-
зволяют вам вводить текст. При работе в текстовом блоке может ис-
пользоваться большая  часть основных клавиш редактирования текста
(например, клавиши  управления курсором,  клавиши Home, End и уп-
равляющая режимом вставки/замены текста клавиша Ins). Если по до-
стижении правой  границы блока вы продолжаете ввод текста, то со-
держимое блока автоматически прокручивается. Если в строке имеет-
ся больше  текста, чем  может уместиться  в блоке,  то на  концах
строки блока  появляются символы "треугольник влево" и "треуголь-
ник вправо". Для того, чтобы осуществить прокрутку текста или его
буксировку, вы можете переместить указатель мыши на символы треу-
гольников и нажать кнопку мыши.

     Если справа  от блока ввода находится символ "стрелка вниз",
то с  данным блоком ввода связан список "предыстории". Для выбора
некоторого элемента  из этого  списка необходимо  нажать  клавишу
Enter. В  этом списке  будет располагаться тот текст, который был
вами введен в данный блок ввода последние несколько раз, когда вы
обращались к данному блоку. Например, такой список имеется у бло-
ка Search  (Поиск). В этом списке будут храниться те образцы тек-
ста, по  которым вы осуществляли поиск при предшествующих обраще-
ниях к данному блоку.

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

     Далее приводится  вид списка  "предыстории" для  блока ввода
File Name  (Имя файла),  если до данного момента он использовался
четыре раза.

     Рис.4.3 Список  предыстории для  блока ввода  File Name (Имя
файла)

     Блок списка является компонентом многих блоков диалога. Блок
списка позволяет  вам осуществлять  в нем прокрутку и производить
выбор из списков большой длины, не покидая блок диалога. В систе-
ме Turbo Profiler блоки списка используются в основном для выбора
имен файлов в блоках диалога.

     Блок списка  можно сделать активным либо подводя к нему ука-
затель мыши  и нажимая  кнопку мыши,  либо нажимая клавишу Tab до
тех пор, пока список не будет выделен, нажав затем клавишу Enter.
После того,  как на экране будет отображен блок списка, вы можете
для перемещения  по списку  воспользоваться блоком  прокрутки или
нажимать расположенные  на клавиатуре  клавиши "стрелка  вверх" и
"стрелка вниз".

     ЧАСТЬ 2: СПРАВОЧНИК ПО МЕНЮ

     В данном  разделе содержится  описание каждой команды меню и
каждого параметра  из блоков  диалога системы  Turbo Profiler. На
рисунке 4.4  изображена структура  глобальных меню профилировщика
(меню, доступ к которым осуществляется посредством строки меню).

     Системное меню (идентификатор - три горизонтальные черты)

     Вызов: Alt-клавиша пробела


+------------------+  +-----------------------------------------+
| Repaint desktop  |  | Регенерировать рабочую область          |
| Restore standard |  | Восстановить стандартную (конфигурацию) |
|------------------|  |-----------------------------------------|
| About...         |  | О системе                               |
+------------------+  +-----------------------------------------+



     Системное меню  будет появляться у самого левого края строки
меню. Самым быстрым способом обратиться к системному меню являет-
ся использование  комбинации клавиш  Alt-клавиша  пробела,  также
можно нажать клавишу F10, затем, используя клавиши "стрелка впра-
во" и  "стрелка влево",  переместиться к идентификатору три гори-
зонтальные черты и нажать клавишу Enter.

     При помощи команд этого меню, вы можете сделать следующее:

*    регенерировать изображение на экране;

*    восстановить первоначальную конфигурацию окон;

*    активировать блок информации о системе Turbo Profiler.


     Команда Repaint Desktop (Регенерировать рабочую область)

     В результате  выбора системного  меню с  последующим выбором
команды Repaint  Desktop (Регенерировать рабочую область) система
Turbo Profiler  осуществляет регенерацию  изображения на  экране.
Это может  потребоваться, например, в том случае, если какая-либо
резидентная программа  оставила на экране "случайные" символы или
в случае,  если вы  отключили атрибут  своппинга (смены) экранных
кадров.

     Команда Restore Standard (Восстановить стандартную (конфигу-
рацию))

     При запуске  системы Turbo Profiler внешний вид экрана (раз-
меры и  расположение окон,  их состояние (открытое или закрытое))
устанавливается в соответствии с информацией, содержащейся в фай-
ле конфигурации  TFCONFIG.TF. Во  время работы  в  системе  Turbo
Profiler Вы  можете перемещать окна, изменять их размеры, некото-
рые из  них открывать,  некоторые закрывать  и, в результате всех
этих манипуляций,  на экране может возникнуть путаница. С помощью
команды Restore  Standard (Восстановить  стандартную  (конфигура-
цию)) Вы можете быстро исправить такую ситуацию.

     При выборе  команды Restore Standard (Восстановить стандарт-
ную (конфигурацию))  система Turbo  Profiler возвращает  все свои
окна в  то положение,  в котором они находились сразу же после ее
запуска.

     Команда About (О системе)

     Когда Вы выбираете команду About (О системе), появляется ок-
но диалога,  в котором  вам предлагается  информация относительно
номера версии  системы Turbo  Profiler, а  также некоторые другие
интересные факты.  Чтобы закрыть  данное окно,  необходимо нажать
клавишу Enter  либо подвести  указатель мыши  к кнопке OK (Выпол-
нить) и нажать кнопку мыши.



     Меню File (Файл)

+----------------+          +-----------------------+
| Open...        |          | Открыть               |
| Change dir...  |          | Сменить директорию    |
| Get info...    |          | Получить информацию   |
| DOS shell      |          | Выход в оболочку DOS  |
| Quit     Alt-X |          | Выйти          Alt-X  |
+----------------+          +-----------------------+

     Меню File (Файл) содержит в себе команды, позволяющие Вам:

*    загружать в  профилировщик программу, профиль которой Вы со-
     бираетесь получить;

*    изменять текущую директорию;

*    получать информацию  о распределении памяти между Вашей про-
     граммой и системой

*    выходить в оболочку DOS;

*    покидать систему Turbo Profiler.

     Команда Open (Открыть)

     Команда File|Open  (Файл|Открыть)  отображает  блок  диалога
Program Load  (Загрузить программу). Далее приводится внешний вид
этого блока диалога:

     Рис.4.5 Блок диалога Program Load (Загрузить программу):

     С помощью  данного блока диалога Вы можете выполнить одно из
указанных далее действий:

*    Ввести полное  имя файла и загрузить этот файл в окно Module
     (Модуль).

*    Ввести имя  файла с  метасимволами. Это позволяет отфильтро-
     вать список  файлов таким  образом, чтобы  он соответствовал
     введенной вами спецификации.

*    Нажать клавишу  "стрелка вниз",  чтобы выбрать  спецификацию
     файла из  списка "предыстории",  который содержит  введенные
     вами ранее спецификации файлов.

*    Просмотреть содержимое  других директорий, выбрав имя дирек-
     тории из списка файлов.

     Блок ввода  позволяет Вам вводить имя файла следующими тремя
способами:

1.   Введите имя файла и выберите ОК (или нажмите Enter).

2.   Нажмите Enter или Tab для активации блока списка, содержаще-
     го имена  файлов. Выберите  имя файла (переместив на это имя
     световой маркер) и нажмите Enter или выберите ОК.

3.   Подведите маркер  мыши к имени файла и дважды подряд кратко-
     временно нажмите ее кнопку.

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

     Выберите команду  Cancel (Отменить) для того, чтобы покинуть
блок диалога  Program Load (Загрузить программу), не загрузив при
этом никакого файла.

     Использование блока ввода File Name (Имя файла)

     Если блок  ввода File  Name (Имя файла) находится в активном
состоянии (при этом внутри блока должен мигать курсор), то Вы мо-
жете выполнить следующие действия:

*    Загрузить файл, указав его явным образом:

      Введите полное имя файла (включающее в себя, в случае необ-
     ходимости, указание  дисковода и абсолютного или относитель-
     ного пути, расширение указывать не обязательно). После этого
     выберите ОК  (или нажмите Enter) для того, чтобы загрузить в
     окно Module  (Модуль) файл,  содержащий исходный текст голо-
     вного модуля профилируемой программы.

*    Отфильтровать имена, появляющиеся в списке файлов:

     Введите имя  файла (включающее  в себя, в случае необходимо-
     сти, указание дисковода и абсолютного или относительного пу-
     ти) со  стандартными метасимволами,  которые используются  в
     операционной системе  (* и ?). Затем перейдите в блок списка
     File (Файл),  содержащий отфильтрованный список имен файлов,
     для выбора  необходимого файла  или в  блок списка Directory
     (Директория) для смены текущей директории.

*    Выбрать имя файла из списка "предыстории":

     Нажмите клавишу  "стрелка вниз",  для того, чтобы под блоком
     ввода Name (Имя) появился список "предыстории". Имя из этого
     списка можно выбрать, подведя к нему указатель мыши и дважды
     подряд кратковременно  нажав кнопку  мыши. Выбор можно также
     произвести с  помощью клавиш  управления курсором  и нажатия
     клавиши Enter.

     Примечание: Список  предыстории содержит в себе послед-
     ние восемь из введенных Вами имен файлов.

     Использование блока списка File (Файл)

     По умолчанию  блок списка  File (Файл)  отображает все имена
файлов,находящихся в  текущей директории,  которые  соответствуют
спецификациям в  блоке ввода Name (Имя), отображает имя родитель-
ской директории а также имена всех поддиректорий. Если специфика-
ции, находящиеся в блоке ввода Name (Имя), включают в себя указа-
ние дисковода или пути, то в рассматриваемом блоке списка фигури-
руют все  файлы находящиеся  на указанном диске и в указанной ди-
ректории, соответствующие заданной спецификации.

     Для того,  чтобы загрузить  файл, находящийся в блоке списка
File (Файл), необходимо сделать следующее:

1.   Подведите к блоку списка указатель мыши и нажмите кнопку мы-
     ши (либо  нажимайте клавишу  Tab до  тех пор, пока имя блока
     списка не будет выделено световым маркером).

2.   Теперь можно  нажать клавишу  "стрелка вверх"  или  "стрелка
     вниз", чтобы  выбрать имя  файла,  а  затем  нажать  клавишу
     Enter, чтобы  открыть его.  Чтобы открыть  файл, можно также
     подвести указатель  мыши к его имени в блоке и дважды подряд
     кратковременно нажать кнопку мыши.

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

     Если необходимый  файл находится  в директории,  отличной от
текущей,  при   помощи  клавиши  Tab  перейдите  к  блоку  списка
Directories (Директории) и выберите директорию в которую Вам нуж-
но попасть.  (Для того, чтобы перейти к работе с родительской ди-
ректорией  Вашей   текущей  директории,  наберите  на  клавиатуре
..\*.exe и нажмите Enter.)

     Если Вам необходимо загрузить Вашу программу с указанием не-
которых аргументов  командной строки, обратитесь к описанию блока
ввода Run|Arguments (Выполнить|Аргументы).



     Команда Change Dir (Сменить директорию)

     Команда File|Change  Dir (Файл|Сменить директорию) открывает
блок диалога New Directory (Новая директория).

     Рис.4.6 Блок диалога New Directory (Новая директория):

     Этот блок  диалога позволяет вам задать  имя директории, ко-
торую следует  сделать текущей.  (Текущей директорией является та
директория, которая  используется системой Turbo Profiler для со-
хранения файлов и поиска файлов.)

     Компоненты блока диалога New Directory (Новая директория)

     Блок диалога New Directory (Новая директория) содержит в се-
бе блок ввода, предназначенный для указания пути, посредством ко-
торого можно попасть в необходимую Вам директорию. После того как
Вы указали  соответствующий путь, выберите ОК для того, чтобы из-
менить текущую  директорию или Cancel для того, чтобы текущая ди-
ректория осталась прежней.

     Примечание: Вы получите сообщение об ошибке если профилиров-
щик не сможет найти указанную Вами директорию.

     Команда Get Info (Получить информацию)

     Команда File|Get  Info (Файл|Получить информацию) отображает
блок текста, в котором содержится информация относительно текущей
профилируемой программы,  а также  данные о  текущей конфигурации
памяти.

     Рис.4.7 Блок Get Info (Получить информацию):

     Представленная в  этом блоке информация предназначена только
для отображения;  вы не  сможете модифицировать какие-либо значе-
ния, представленные в данном блоке. В блоке диалога Get Info (По-
лучить информацию) содержатся следующие данные:

*    Program (Программа)  - имя программы профилируемой в настоя-
     щий момент,  программу, профиль которой необходимо получить,
     Вы задаете при помощи команды File|Open (Файл|Открыть).

*    Status (Состояние) объясняет почему в данный момент управле-
     ние находится  у системы Turbo Profiler. Значения этого эле-
     мента блока Get Info (Получить информацию) могут быть следу-
     ющими:

          No program loaded (Никакая программа не загружена)

          Control-Break (Прерывание по Ctrl-Break)

          Terminated exit  code XX (Выполнение завершено, код за-
          вершения XX)

          Stopped by area (Выполнение остановлено областью)

          NMI Interrupt (Прерывание NMI)

          Exception XX (Исключительная ситуация XX)

          Divide by zero (Деление на ноль)

*    Mode (Режим)  - это  режим профилирования (активный или пас-
     сивный); режим  профилирования задается при помощи селектив-
     ной кнопки  Profile Mode (Режим профилирования), находящейся
     в блоке диалога Profiling Options (Параметры профилирования)
     (вызываемом при помощи команды Statistics| Profiling Options
     (Статистика| Параметры профилирования)).

*    Collection (Сбор)  показывает включен (Enabled) или отключен
     (Disabled) автоматический  сбор статистических данных; вклю-
     чение и отключение автоматического сбора статистических дан-
     ных      осуществляется       при       помощи       команды
     Statistics|Accumulation (Статистика|Накопление).

*    Memory (Память) отражает следующие данные:

     *    DOS: Память, занимаемая DOS, и/или драйверами различных
          устройств.

     *    Profiler (Профилировщик):  Общее количество памяти, ис-
          пользуемой профилировщиком.

     *    Symbols (Символы): Память, зарезервированная для хране-
          ния таблицы символических имен программы.

     *    Program (Программа):  Память, отведенная текущей профи-
          лируемой программе.

     *    Available (Доступно):  Количество остающейся  свободной
          памяти.

*    EMS показывает  использование отображаемой  памяти (expanded
     memory) системой Turbo Profiler, DOS, таблицей символических
     имен программы, самой профилируемой программой, и количество
     памяти, остающейся  свободной, точно  также, как  и в случае
     основной памяти.  EMS появляется  только в  случае наличия в
     вычислительной   системе   отображаемой   памяти   (expanded
     memory).

*    DOS version  (Версия DOS) показывает версию DOS, установлен-
     ной на Вашей системе.

*    Текущая дата и время.

     После ознакомления  с информацией,  содержащейся в блоке Get
Info (Получить  информацию) подведите  маркер мыши  к кнопке ОК и
нажмите кнопку  мыши (или просто нажмите клавишу Enter) для того,
чтобы вернуться в текущее окно.

     Команда DOS Shell (Выход в оболочку DOS)

     Команда File|DOS Shell (Файл|Выход в оболочку DOS) позволяет
вам временно выйти из системы Turbo Profiler, чтобы выполнить ко-
манду DOS или запустить какую-либо программу.

      Для  того, чтобы возвратиться в систему Turbo Profiler, не-
обходимо ввести с клавиатуры EXIT и нажать клавишу Enter.

     Примечание: При работе в режиме удаленного профилирова-
     ния командная  строка DOS  появляется на экране системы
     Turbo Profiler,  а не  на экране,  куда выдаются данные
     профилируемой программы. Это позволяет Вам обратиться к
     DOS, не  разрушая выведенных  Вашей программой  данных.
     Поскольку выводимые  Вашей программой  данные будут все
     время доступны  на одном  из мониторов системы, команда
     Window|User Screen  (Окно|Экранный  кадр  пользователя)
     будет "запрещена",  а нажатие  комбинации клавиш Alt-F5
     не приведет  ни к  каким результатам.  (Более подробную
     информацию об удаленном профилировании можно почерпнуть
     из приложения В)

     Команда Quit (Выйти)

     Вызов: Alt-X

     Команда File|Quit (Файл|Выйти) осуществляет выход из системы
Turbo Profiler, удаляет ее из памяти, и возвращает Вас на уровень
DOS. При  выходе из системы Turbo Profiler происходит запоминание
того, какие "области" были установлены в Вашей программе.

     Если Вы  хотите сохранить какие-либо результаты профилирова-
ния или  параметры (такие  как, например,  статистика, полученная
при профилировании,  параметры профилирования  и изображения  или
формат изображения  данных на экране), запишите их при помощи ко-
манд Statistics|Save (Статистика|Сохранить) и Options|Save (Пара-
метры|Сохранить) перед  выходом из системы. В противном случае Вы
утратите установленные Вами значения параметров.

     Меню View (Просмотр)

+----------------------+       +------------------------+
| Module...         F3 |       | Модуль...          F3  |
| Execution Profile    |       | Профиль выполнения     |
| Callers              |       | Вызывающие подпрограммы|
| Overlays             |       | Оверлеи                |
| Interrupts           |       | Прерывания             |
| Files                |       | Файлы                  |
| Areas                |       | "Области"              |
| Routines             |       | Подпрограммы           |
| Disassembly          |       | Дисассемблер           |
+----------------------+       +------------------------+

     Меню View  (Просмотр) позволяет  Вам открыть окна нескольких
видов, в  которых находится  информация о  ходе выполнения  Вашей
программы.

                          Таблица 4.2 Окна системы Turbo Profiler


Название окна                       Что в нем изображается


Module (Модуль)                     Исходный текст  профилируемой
                                    программы

Execution Profile ()                Статистическая  информация  о
                                    процессе выполнения программы
                                    (после того как программа за-
                                    кончила свою работу).

Callers(Вызывающие подпрограм-      Информация о  том, какие под-
мы)                                 программы и как часто вызыва-
                                    ют данную.

Overlays (Оверлеи)                  Информация  об  оверлеях  для
                                    систем Turbo  Pascal, Turbo C
                                    и Turbo Assembler.

Interrupts (Прерывания)             Данные об обращении программы
                                    к прерываниям.

Files (Файлы)                       Информация о работе программы
                                    с файлами.

Areas ("Области")                   Подробная информация о дейст-
                                    виях по  сбору статистических
                                    данных для  каждой "области",
                                    помеченной в  исходном тексте
                                    Вашей программы.

Routines (Подпрограммы)             Имена всех подпрограмм, кото-
                                    рые могут  быть помечены мар-
                                    керами "областей"  профилиро-
                                    вания.

Disassembly(CPU)   (Дисассемб-      Текущая  "область"   из  окна
лер(ЦПУ))                           Module (Модуль), изображенная
                                    в дисассемблированном виде.


     Окно Module (Модуль)

     Если Вы  выбираете команду Module (Модуль), то на экране по-
является блок  диалога, в котором вы должны указать имя требующе-
гося вам модуля. Выберите ОК для того, чтобы текст указанного ва-
ми модуля  появился в окне Module (Модуль). В этом окне Вы можете
изучать текст  программы и  помечать в  нем "области" для которых
необходимо собирать  статистические данные.  Специальные  клавиши
активации и  межоконные ссылки связывают текст программы, находя-
щийся в рассматриваемом окне, со статистическими данными в других
окнах.

     Рис. 4.8 Окно Module (Модуль)

     В процессе  получения профиля программы Вам необходимо иметь
доступ как  к .ЕХЕ-файлу,  так и к файлу, содержащему ее исходный
текст. Система Turbo Profiler пытается обнаружить файл с исходным
текстом в следующих директориях и в следующей последовательности:

1.   В директории, в которой программа была скомпилирована

2.   В директориях  заданных при  помощи команды  Option|Path for
     Source (Параметры|Путь доступа к исходному тексту)

3.   В текущей директории.

4.   В директории, содержащей профилируемую программу.

     (Имя директории, в которой была скомпилирована Ваша програм-
ма, содержится  в файлах  .ЕХЕ и  .OBJ только  в том случае, если
компиляция происходила с сохранением отладочной информации о сим-
волах).

     Нажмите комбинацию клавиш Alt-F10 или правую кнопку мыши для
того, чтобы вызвать локальное меню окна Module (Модуль).

+---------------+        +-------------------------+
| Line...       |        | Строка                  |
| Search...     |        | Поиск                   |
| Next          |        | Следующее               |
| Goto...       |        | Пеpеход                 |
|---------------|        |                         |
| Add areas     |        | Добавить "области"      |
| Remove areas  |        | Удалить "области"       |
| Operation...  |        | Режим работы            |
| Callers...    |        | Вызывающие подпpогpаммы |
|---------------|        |                         |
| Module...     |        | Модуль                  |
| File...       |        | Файл                    |
| Edit          |        | Редактирование          |
+---------------+        +-------------------------+


     С помощью команд локального меню Вы сможете выполнить следу-
ющие действия:

*    переместить курсор на заданную строку или метку;

*    найти заданный текст в исходном коде;

*    добавить и  удалить области для которых происходит сбор ста-
     тистических данных;

*    задать для некоторой области, тип статистических данных, ко-
     торые необходимо собирать в этой области в процессе профили-
     рования;

*    задать уровень  подробности информации  о путях  вызова  для
     данной подпрограммы;

*    загрузить в  окно Module  (Модуль) другой  модуль или другой
     файл, содержащий  часть исходного  текста рассматриваемого в
     данный момент модуля;

*    вызвать любой текстовый редактор.

     Для непосредственного  приведения в  действие какой либо ко-
манды локального меню (без предварительного вызова самого меню на
экран), достаточно  нажать комбинацию  клавиш вида: Ctrl-<буква>,
где <буква> это буква, выделенная в соответствующей команде.

     Команда Line (Строка)

     Вызов: Ctrl-L

     Для того, чтобы быстро переместиться на некоторую строку ис-
ходного текста,  выберите в локальном меню команду Line (Строка).
При выполнении  этой команды  на экране появляется блок диалога в
котором необходимо указать номер строки, на которую Вы хотите пе-
реместиться. Наберите  номер требуемой  строки, затем выберите ОК
при помощи  мыши (или нажмите ENTER). Если Вы укажете номер стро-
ки, превышающий  номер последней  строки данного файла, то курсор
будет установлен на последней строке.

     Команда Search (Поиск)

     Вызов: Ctrl-S

     Для того,  чтобы найти  вхождение символьной  строки в текст
текущего модуля,  выберите в  локальном меню окна Module (Модуль)
команду Search (Поиск). Блок ввода, который появится в результате
этого затребует  ввести строку для поиска. Сделав это выберите ОК
(или нажмите ENTER).

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

     Это избавит  Вас от  печатания вручную искомой строки, в том
случае, если она находится в окне Module (Модуль).

     Вы можете  использовать стандартные  метасимволы DOS  ("?" и
"*"). Символ  "?" сопоставим с любым одиночным символом, а символ
"*" сопоставим с любой подстрокой, включая пустую.

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

     Команда Next (Следующее)

     Вызов: Ctrl-N

     Если Вы  при помощи команды Search (Поиск) задали подстроку,
которую необходимо  найти, то  используя команду Next (Следующее)
Вы можете  искать участки текста, содержащие эту подстроку. Выбе-
рите Next (Следующее) из локального меню или просто нажмите Ctrl-
N. Команда  Next (Следующее)  может использоваться  только в  том
случае, если ранее была вызвана команда Search (Поиск).

     Команда Goto (Пеpеход)

     Вызов: Ctrl-G

     Для того,  чтобы установить курсор в окне Module (Модуль) на
начало конкретной  подпрограммы  или  какое-нибудь  символическое
имя, фигурирующее  в исходном  тексте Вашей программы, необходимо
воспользоваться командой Goto. Блок запроса, который появляется в
результате выбора этой команды, требует ввести необходимый адрес.
Наберите номер строки, имя подпрограммы или шестнадцатиричный ад-
рес и выберите ОК (или нажмите ENTER).

     Синтаксис адреса можно найти в главе "Выражения" "Руководст-
ва пользователя" системы Turbo Debugger.

     Команда Add Areas (Добавить "области")

     Вызов: Ctrl-A

     Выполнение команды Add Areas (Добавить "области") локального
меню окна  Module (Модуль) ведет к появлению на экране следующего
меню:

+--------------------------+    +-------------------------------+
| All routines             |    | Все подпрограммы              |
| Modules with source      |    | Модули с исходным текстом     |
| Routines in module       |    | Подпрограммы в модуле         |
| Every line in module     |    | Каждая строка в модуле        |
| Lines in routine         |    | Строки подпрограммы           |
| Current routine   Alt-F2 |    | Текущая подпрограмма   Alt-F2 |
| This line             F2 |    | Текущая строка             F2 |
+--------------------------+    +-------------------------------+

*    Команда All  Rountines (Все подпрограммы) приводит к пометке
     маркерами "области"  всех подпрограмм Вашей программы, вклю-
     чая подпрограммы,  исходный текст которых недоступен (такие,
     например, как  библиотечные подпрограммы,  представляющие из
     себя объектные модули, находящиеся в библиотечных файлах)

*    Команда Modules  with Source (Модули с исходным текстом) по-
     мечает маркерами  "области" все подпрограммы для которых до-
     ступен исходный текст.

*    Команда Routines  in Module (Подпрограммы в модуле) устанав-
     ливает маркеры "области" на всех подпрограммах модуля, нахо-
     дящегося в данный момент в окне Module (Модуль).

*    Команда Every  Line in Module (Каждая строка в модуле) поме-
     чает маркерами "области" каждую строку текущего модуля.

*    Команда Lines in Routine (Строки подпрограммы) помечает мар-
     керами "области"  все строки  текущей подпрограммы (той под-
     программы на которой в данный момент установлен курсор в ок-
     не Module (Модуль)).

*    Команда Current  Routine (Текущая подпрограмма) метит марке-
     ром "области"  подпрограмму на которой в данный момент уста-
     новлен курсор в окне Module (Модуль).

*    This Line (Текущая строка) устанавливает маркер "области" на
     той строке, на которой в данный момент находится курсор.

     Команда: Remove Areas (Удалить "области")

     Вызов: Ctrl-R

     Вызов команды  Remove Areas  (Удалить "области")  локального
меню окна Module (Модуль) приводит к появлению следующего меню:
+--------------------------+    +-------------------------------+
| All areas                |    | Все    "области"              |
| Modules with source      |    | Модули с исходным текстом     |
| Routines in module       |    | Подпрограммы в модуле         |
| Every line in module     |    | Каждая строка в модуле        |
| Lines in routine         |    | Строки подпрограммы           |
| Current routine   Alt-F2 |    | Текущая подпрограмма   Alt-F2 |
| This line             F2 |    | Текущая строка             F2 |
+--------------------------+    +-------------------------------+

*    Команда All  Areas  (Все "области") приводит к удалению мар-
     керов "области"  у всех подпрограмм Вашей программы, включая
     подпрограммы, исходный  текст которых недоступен (такие, на-
     пример, как библиотечные подпрограммы, представляющие из се-
     бя объектные модули, находящиеся в библиотечных файлах)

*    Команда Modules with Source (Модули с исходным текстом) при-
     водит к удалению маркеров "области", помечающих все подпрог-
     раммы в модулях, для которых доступен исходный текст.

*    Команда Routines  in Module (Подпрограммы в модуле) приводит
     к удалению  маркеров "области",  помечающих все подпрограммы
     модуля, находящегося в данный момент в окне Module (Модуль).

*    Команда Every Line in Module (Каждая строка в модуле) приво-
     дит к удалению маркеров "области" для каждой строки текущего
     модуля.

*    Команда Lines  in Routine  (Строки подпрограммы)  приводит к
     удалению всех  маркеров "области", помечающих строки текущей
     подпрограммы (той  подпрограммы на  которой в  данный момент
     установлен курсор в окне Module (Модуль)).

*    Команда Current  Routine (Текущая  подпрограмма) приводит  к
     удалению маркера  "области", помечающего подпрограмму на ко-
     торой в  данный момент  установлен курсор в окне Module (Мо-
     дуль).

*    This Line  (Текущая строка) приводит к удалению маркера "об-
     ласти" на  той строке,  на которой в данный момент находится
     курсор.

     Команда Operation (Режим работы)

     Вызов: Ctrl-O

     Команда Operation  ведет к появлению на экране блока диалога
Area Options (Параметры "области"), содержащего значения парамет-
ров, определяющих режим работы профилировщика в текущей "области"
(той "области", в которой в данный момент находится курсор в окне
Module (Модуль)).

     Рис. 4.9 Блок диалога Area Options (Параметры "области").

     В этом блоке диалога Вы можете задать значения двух парамет-
ров: Operation  (Режим работы)  и Timing (Подсчет времени). Когда
Вы помечаете  некоторую "область", то слева от этой "области" по-
является символ маркера, соответствующего выбранному режиму рабо-
ты.

*    Operation (Режим  работы)  задает  действия  профилировщика,
     производимые при работе данной "области":

          Normal (Нормальный).  В этом режиме сбор статистических
          данных для рассматриваемой "области" происходит в соот-
          ветствии со  значениями  параметров,  заданных  в  меню
          Statistics (Статистика)  (данные о  вызывающих подпрог-
          раммах, обращениях  к файлам, обращениях к прерываниям,
          работе  с  оверлеями  и  т.д.)  и  блоке  диалога  Area
          Operations (Режим  работы в  "области"), который  можно
          вызвать из  локальных меню окон Module (Модуль) и Areas
          ("Области").

          Stop (Остановка).  При достижении  маркера данного типа
          выполнение программы приостанавливается.

          Enable (Включить).  При достижении маркера данного типа
          разблокируется сбор статистических данных.

          Disable (Отключить) Временно отключает сбор статистиче-
          ских данных при достижении данной точки программы.

*    Timing (Подсчет вpемени). Этим паpаметpом опpеделяется будет
     ли пpибавляться  вpемя выполнения данной "области" ко вpеме-
     нам выполнения "областей" более высокого уpовня.

          Sеparate (Отдельный).  Пpи подсчете вpемени, задаваемом
          этим значением  паpаметpа Timing (Подсчет вpемени) каж-
          дый импульс таймеpа увеличивает только вpемя выполнения
          данной "области"  и никак не влияет на вpемя выполнения
          "области" из котоpой была вызвана данная.

          Combined (Объединенный).  В этом  случае каждый импульс
          таймеpа пpиводит  к увеличению  подсчитываемого вpемени
          выполнения как  для данной "области", так и для вызвав-
          шей ее.

     В окне  Areas ("Области")  отобpажается pежим  pаботы пpофи-
лиpовщика и тип подсчета вpемени для каждой "области".

     Команда Callers (Вызывающие подпpогpаммы)

     Вызов: Ctrl-C

     Команда Callers  (Вызывающие подпpогpаммы) ведет к появлению
на экpане блока диалога Stack Trace (Тpассиpовка стека)

     Рис. 4.10 Блок диалога Stack Trace (тpассиpовка стека)

     В  этом   блоке  диалога  Вы  можете  задать  значения  двух
паpаметpов: Areas ("Области") и Stack (Стек).

*    Areas ("Области")  задает "области"  для котоpых  необходимо
     запоминание путей вызова.

          This  Rountine   (Данная  подпpогpамма).  Это  значение
          пpиводит к  запоминанию инфоpмации  о путях  вызова для
          текущей подпpогpаммы  (т.е. подпpогpаммы  на котоpой  в
          данный момент  установлен куpсоp  в  окне  Module  (Мо-
          дуль)).

          This Module (Данный модуль). Это значение влечет за со-
          бой сохpанение инфоpмации о путях вызова для всех поме-
          ченных подпpогpамм  текущего модуля (т.е. модуля, нахо-
          дящегося в данный момент в окне Module (Модуль)).

          All Rountines  (Все подпpогpаммы). В pезультате задания
          этого значения  pассматpиваемого паpаметpа запоминается
          инфоpмация о  путях вызова для всех подпpогpамм во всех
          модулях, составляющих пpогpамму.

*    Stack (Стек) задает глубину стека вызовов.

          All Callers (Все вызывающие подпpогpаммы). Это значение
          паpаметpа пpиводит  к запоминанию  всей  доступной  ин-
          фоpмации о  стеке вызовов,  для  подпpогpамм,  заданных
          паpаметpом Areas ("Области").

          Immediate Callers (Подпpогpаммы, вызывающие непосpедст-
          венно). Это  значение паpаметpа ведет к запоминанию ин-
          фоpмации только  о том,  какие подпpогpаммы непосpедст-
          венно вызывают  подпpогpаммы, заданные паpаметpом Areas
          ("Области")

          None (Никакие).  Это значение  паpаметpа блокиpует сбоp
          инфоpмации о  стеках вызова  для подпpогpамм,  заданных
          паpаметpом Areas ("Области").

     Команда Module (Модуль)

     Вызов: Alt-M

     Команда Module (Модуль) локального меню ведет к появлению на
экpане блока  диалога Pick  а Module  (Выбоp модуля),  в  котоpом
пеpечисляются все  модули Вашей  пpогpаммы, для  котоpых доступен
исходный текст.

     Рис.4.11 Блок диалога Pick a Module (Выбоp модуля)

     Исходный текст большинства модулей содеpжится в единственном
файле, дpугие  же файлы, относящиеся к данному модулю (такие как,
напpимеp, файлы  заголовков в  С) содеpжат  лишь опpеделения кон-
стант и стpуктуp данных.

     Этой командой  необходимо пользоваться  для загpузки какого-
либо модуля в окно Module (Модуль).

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

     Пpи выполнении  команды Module  (Модуль) файлы  с  исходными
текстами ищутся в следующих диpектоpиях в пеpечисленном поpядке:

1.   в диpектоpии, в котоpой пpогpамма была скомпилиpована;

2.   в диpектоpиях,  заданных  пpи  помощи  команды  Options|Path
     Source (Паpаметpы|Путь доступа к исходным текстам) (если та-
     кие имеются);

3.   в диpектоpии, содеpжащей пpофилиpуемую пpогpамму;

4.   в текущей диpектоpии.

     Команда File (Файл)

     Вызов: Ctrl-F

     Вызов команды File (Файл), находящийся в локальном меню при-
водит к  появлению на  экране блока диалога в котором перечислены
все файлы  с исходными  текстами, в результате компиляции которых
был             получен              текущий              модуль.
Эту команду  следует использовать  в случае, когда исходный текст
Вашего модуля  расположен в  нескoльких файлах  и требующийся Вам
файл не изображен в данный момент в окне Module (Модуль).

     Рис. 4.12 Блок диалога File (Файл)

     Команда File  (Файл) производит поиск файлов с исходным тек-
стом в следующих директориях и в следующем порядке:

1.   в директории, где программа была скомпилирована;

2.   в директориях,  заданных при помощи команды Options|Path for
     Source (Параметры|Путь поиска исходного текста);

3.   в директории, содержащей профилируемую программу;

4.   в текущей директории.

     Команда Edit (Редактирование)

     Вызов: Ctrl-E

     Несмотря на то, что система Turbo Profiler не имеет встроен-
ного редактора,  во время работы в этой системе Вы можете пользо-
ваться своим любимым редактором, предварительно задав его в каче-
стве значения соответствующего параметра во время выбора конфигу-
рации системы, осуществляемого при помощи программы TFINST. (Под-
робные сведения о программе TFINST можно найти в Приложении Б.)

     Если Вы  задали какой  либо редактор  при  помощи  программы
TFINST, то при вызове команды Edit (Редактирование) из локального
меню окна  Module (Модуль)  система Turbo  Profiler автоматически
выйдет в  DOS и  запустит заданный Вами редактор. Для того, чтобы
вернуться в  среду профилировщика, необходимо просто выйти из ре-
дактора.

     Окно Execution Profile (Профиль выполнения)

     В окне  Execution Profile (Профиль выполнения) система Turbo
Profiler изображает  статистические данные, coбранные при получе-
нии профиля  Вашей программы  (они появляются  после того, как Вы
зададите в Вашей программе "области" и выполните ее под контролем
профилировщика).

     Рис. 4.13 Окно Execution Profile (Профиль выполнения)

     Окно Execution Profile (Профиль выполнения) состоит из одной
панели, разделенной  на две  области вывода (верхнюю и нижнюю). В
верхней области вывода расположены следующие данные:

*    Total Time  (Общее время): общее время выполнения Вашей про-
     граммы;

*    % of  Total (% от общего времени): процентное отношение вре-
     мени, соответствующего статистическим данным, изображенным в
     нижней "области" вывода к общему времени выполнения програм-
     мы;

*    Runs (Запуски):  текущий запуск  программы  под  управлением
     профилировщика (в  том случае  если Вы производите несколько
     запусков Вашей  программы, чтобы  затем усреднить полученные
     статистические данные).

*    значения параметров  изображения статистических  данных, за-
     данные Вами  с помощью  локального меню  (формат изображения
     данных, значение фильтра, порядок сортировки)

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

     Если окна  Module (Модуль)  и Execution Profile (Профиль вы-
полнения) одновременно  находятся на  Вашем экране, то содержимое
окна Execution Profile (Профиль выполнения) автоматически изменя-
ется, в соответствии с тем, на какой из выделенных "областей" ус-
тановлен курсор  в окне Module (Модуль) таким образом, что в окне
Execution Profile (Профиль выполнения) постоянно находятся стати-
стические данные,  относящиеся к текущей "области" из окна Module
(Модуль).

     Для того,  чтобы задать  вид изображения статистических дан-
ных, собранных  для Вашей  программы, в  окне  Execution  Profile
(Профиль выполнения),  необходимо вызвать  локальное меню  (нажав
для этого  Alt-F10). При  помощи команд этого меню Вы можете сде-
лать следующее:
+-------------------+       +-------------+
| Display...        |       | Изображение |
| Filter       All  |       | Фильтр      |
|-------------------|       |             |
| Module            |       | Модуль      |
| Remove            |       | Убрать      |
+-------------------+       +-------------+

*    выбрать любой из пяти различных вариантов изображения стати-
     стики, полученной  в  ходе  сеанса  профилирования,  в  окне
     Execution Profile (Профиль выполнения);

*    отсортировать изображенные статистические данные;

*    временно подавить изображение статистических данных, относя-
     щихся к одной или нескольким "областям";

*    посмотреть исходный текст, соответствующий какой-либо "обла-
     сти";

*    стереть из  памяти статистические  данные, относящиеся к ка-
     кой-либо "области".

     Для того,  чтобы непосредственно  активировать  какую-нибудь
команду локального  меню (без  предварительного вызова самого ме-
ню), необходимо  нажать комбинацию клавиш Ctrl-<буква>, где <бук-
ва> - это выделенная буква соответствующей команды.

     Команда Display (Изображение)

     Вызов: Ctrl-D

     Когда Вы  вызываете команду Display (Изображение) из локаль-
ного меню  окна Execution  Profile (Профиль выполнения) на экране
появляется следующий  блок диалога Dispay Options (Параметры изо-
бражения):

     Рис. 4.14  Блок диалога Display Options (Параметры изображе-
ния).

     В этом блоке диалога Вы можете задать значения двух парамет-
ров: Display (Изображение) и Sort (Сортировка).

*    Параметр Display  (Изображение) определяет какие статистиче-
     ские данные будут изображены на экране.

*    Значение Time (Время) задает изображение временной статисти-
     ки для каждой "области", т.е. времени в течение которого уп-
     равление программы находилось в данной "области" (выраженно-
     го в миллисекундах)

*    Значение Counts  (Число) приводит  к изображению  статистики
     профилирования в виде числа проходов через каждую "область",
     т.е. числа  раз, которое  управление программы  передавалось
     данной "области".

*    Значение Both  (И то,  и другое) влечет за собой изображение
     как временной (верхняя строчка), так и количественной стати-
     стики для  каждой "области", что позволяет наглядно показать
     насколько эффективна работа каждой "области".

*    Значение Per  Call (На  один вызов)  приводит к  изображению
     статистики для  каждой  "области"  в  виде  отношения  Time:
     Counts (<Общее время выполнения>: <число вызовов>). Значение
     этого отношения  равно среднему  времени работы подпрограммы
     при ее вызове.

*    Значение Longest (Наибольший) вызывает изображение статисти-
     ческих данных  в виде  наибольшего времени,  затраченного на
     один вызов каждой "области".

*    Параметр Sort (Сортировка) определяет порядок сортировки вы-
     водимых на экран статистических данных.

*    Значение Name (Имя) приводит к изображению статистики профи-
     лирования, отсортированной  в алфавитно-цифровом  порядке по
     именам "областей".

*    Значение Address (Адрес) задает сортировку статистики профи-
     лирования по расположению "областей" в памяти, начиная с ни-
     зших адресов памяти.

*    Значение Frequency (Частота) сортирует статистические данные
     в соответствии с частотой вызовов каждой "области" в порядке
     убывания этой частоты.

     В верхней области вывода окна Execution Profile (Профиль вы-
полнения) изображены текущие значения параметров Display (Изобра-
жение) и Sort (Сортировка).

     Команда Filter (Фильтр)

     Вызов: Ctrl-F

     Выполнение команды  Filter (Фильтр)  приводит к появлению на
экране меню, состоящего из трех элементов:

+-----------+       +---------+
| All       |       | Вся     |
| Module... |       | Модуль  |
| Current   |       | Текущая |
+-----------+       +---------+

*    команда All  (Вся) приводит  к восстановлению на экране всех
     статистических данных,  собранных для  рассматриваемой в на-
     стоящий момент программы.

     После  того   как  Вы,  с  помощью  команды  Filter|  Module
     (Фильтр|Модуль) или  Filter| Curret (Фильтр| Текущая),   от-
     фильтровали  статистические   данные,  находящиеся   в  окне
     Execution Profile  (Профиль выполнения),  воспользуйтесь ко-
     мандой Filter|  All (Фильтр|  Вся) для того, чтобы восстано-
     вить на экране изображение всей cтатистики, полученной в хо-
     де сеанса профилирования.

*    Команда Module (Модуль) приводит к тому, что в окне остаются
     статистические данные,  относящиеся к какому-либо одному мо-
     дулю Вашей программы.

     При выполнении данной команды на экране появляется блок диа-
     лога Pick  a Module (Выберите модуль), в котором перечислены
     все модули, составляющие Вашу программу. Используйте клавиши
     "стрелка-вверх" и "стрелка-вниз" для выделения одного из мо-
     дулей, изображенных  на экране,  и нажмите  клавишу Enter. В
     окне Execution Profile (Профиль выполнения) останутся стати-
     стические данные только тех "областей", который входят в вы-
     бранный Вами модуль.

*     Команда  Current (Текущая)  временно удаляет статистические
     данные, относящиеся к текущей подпрограмме из окна Execution
     Profile (Профиль выполнения).

     Воспользуйтесь командой  Filter|Current  (Фильтр|Текущая)  в
     том случае,  если Вы хотите убрать из рассмотрения статисти-
     ческие данные,  относящиеся к какой-либо подпрограмме, и по-
     смотреть, как  после этого изменятся процентные соотношения.
     Команда Current  (Текущая) представляет  из  себя  временный
     фильтр, при  включении которого  часть статистических данных
     становится невидимой,  но при этом не происходит уничтожения
     этих данных.  Рассматриваемая команда  производит  следующие
     действия:

     1.   Удаляет статистические данные текущей "области" из окна
          Execution Profile (Профиль выполнения).

     2.   Вычитает из  общего времени выполнения время выполнения
          удаленной "области".

     3.   Пересчитывает  процентные  соотношения  для  оставшихся
          "областей" в соответствии с новым значением общего вре-
          мени выполнения.

     Когда Вы убираете статистические данные одной или нескольких
"областей" из окна Execution Profile (Профиль выполнения), профи-
лировщик вычисляет  новое значение общего времени выполнения "об-
ластей" (total  execution time)  на основании статистических дан-
ных, находящихся в этом окне, но значение общего времени выполне-
ния (Total Time), показанное в верхней части окна, остается неиз-
менным.

     После выполнения  команды  Filter|Current  (Фильтр|Текущая),
первоначальное общее  время выполнения  продолжает  находиться  в
верхней области  вывода окна  Execution Profile (Профиль выполне-
ния).

     Команда  Filter|Current   (Фильтр|Текущая)   это   временный
фильтр, который просто делает невидимой часть статистических дан-
ных. Команда  Remove (Убрать) на самом деле удаляет маркеры как в
окне Module (Модуль), так и в окне Areas ("Области").

     Примечание: Будьте  внимательны и  не  путайте  команды
     Filter|Current (Фильтр|Текущая)  и Remove  (Убрать) ло-
     кального меню  окна Execution Profile (Профиль выполне-
     ния).

     Команда Module (Модуль)

     Вызов: Ctrl-M

     Команда локального  меню Module (Модуль) переносит Вас на ту
строку исходного текста, находящегося в окне Module (Модуль), ко-
торая соответствует статистическим данным, выделенным в настоящий
момент в окне Execution Profile (Профиль выполнения).

     Например, предположим,  что Вы  выделили статистические дан-
ные, относящиеся  к подпрограмме  fred, в  окне Execution Profile
(Профиль выполнения)  и затем  выбрали из локального меню команду
Module (Модуль) для того, чтобы воспользоваться связью, существу-
ющей между  окнами. Turbo  Profiler делает активным окно Module и
помещает курсор  на первую  строку исходного  текста подпрограммы
fred. После этого Вы перемещаете курсор в окне Module (Модуль) на
строку с  номером 25 (строка с номером 25 помечена маркером обла-
сти). При  этом содержимое окна Execution Profile (Профиль выпол-
нения) автоматически  перемещается таким образом, что статистиче-
ские данные, соответствующие 25 строке, оказываются на самом вер-
ху области экрана, предназначенной для вывода статистических дан-
ных.

     Связь между окнами работает только в одном направлении. Если
Вы вернетесь  из окна  Module (Модуль)  в окно  Execution Profile
(Профиль выполнения) и переместитесь по его тексту, то содержимое
окна Module  (Модуль) при  этом останется  неподвижным. (Если  бы
произошло обратное, Вы могли бы сильно огорчиться).

     Если Вы  выбираете из локального меню окна Execution Profile
(Профиль выполнения)  команду Module(Модуль),  то в  случае недо-
ступности исходного  текста, соответствующего  выделенной строке,
профилировщик  находит   соответствующую  строку   кода  в   окне
Disassmbly (CPU)  (Дисассемблер (ЦПУ)).  Такая ситуация возможна,
например, в  случае, когда  Вы пометили в качестве "областей" все
подпрограммы и  в данный  момент рассматриваете библиотечную под-
программу. (Более  подробную информацию об окне Disassembly (CPU)
(Дисассемблер (ЦПУ)  Вы можете  найти в  соответствующем  разделе
данного руководства.)

     Команда Remove (Убрать)

     Вызов: Ctrl-R

     Команда Remove  (Убрать) убирает  маркеры "области"  в окнах
Module (Модуль) и Areas ("Области"), соответствующие выделенной в
данный момент строке.

     Если Вы  убрали маркеры "области", соответствующие некоторой
строке при помощи команды Remove (Убрать), то статистические дан-
ные, относящиеся  к рассматриваемой строке, уничтожаются и больше
для данной  строки статистическая  информация не  собирается. Для
того, чтобы  отменить действие команды Remove (Убрать), Вы должны
сделать следующее:

1.   Перейти в окно Module (Модуль) и вызвать его локальное меню.

2.   Переместить курсор  на строку,  маркер которой был Вами уда-
     лен.

3.   Выбрать Команду Add Areas|This line (Добавить "область"|Дан-
     ная строка)

4.   Еще раз  выполнить программу  (собрав при  этом новый  набор
     статистических данных).

     Примечание: Внимание!  Команда Remove  (Убрать) стирает
     статистические данные, поэтому пользоваться этой коман-
     дой надо с осторожностью.

     Окно Callers (Вызывающие подпрограммы)

     В  окне  Callers  (Вызывающие  подпрограммы)  системы  Turbo
Profiler изображаются  пути вызова  для каждой из помеченных под-
программ Вашей программы. Для того, чтобы профилировщик начал за-
поминать какую-либо  информацию о  путях вызова Вы должны устано-
вить элемент меню Statistics|Callers (Статистика| Вызывающие под-
программы) в состояние Enabled (Включен).

     Рис. 4.15  Окно Callers (Вызывающие подпрограммы), в котором
показаны пути вызова для программы CALLTEST.

     Примечание: В  окне Callers  (Вызывающие  подпрограммы)
     всем идентификаторам предшествует символ подчеркивания,
     это происходит  потому, что Turbo C добавляет этот сим-
     вол ко всем именам, появляющимся в файлах с расширением
     .OBJ и в символической отладочной информации.

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

     Тип информации  о путях  вызова изображаемой  в окне Callers
(Вызывающие подпрограммы)  задается либо  в окне Module (Модуль),
либо в окне Areas ("Области").

     В окне Module (Модуль), Вы можете устанавливать тип информа-
ции, собираемой  о путях вызова для некоторого множества подпрог-
рамм.

1.   Установив курсор  в окне  Module (Модуль) на помеченную под-
     программу нажмите Alt-F10 для вызова локального меню.

2.   Выберите команду Callers (Вызывающие подпрограммы) для того,
     чтобы на  экране появился  блок диалога Stack Trace (Трасси-
     ровка стека).

3.   Установите значение  параметра Areas  ("Области"). Вы можете
     выбрать один  из следующих вариантов: запоминать пути вызова
     только для  текущей подпрограммы, для всех подпрограмм в те-
     кущем модуле  или вообще  для всех  подпрограмм, входящих  в
     программу (включая библиотечные подпрограммы).

4.   Установите значение параметра Stack (Стек). Вы имеете следу-
     ющие возможности выбора значения данного параметра:  запоми-
     нание полной  цепочки вызова  для каждой  из выбранных  Вами
     подпрограмм, запоминание информации только о тех подпрограм-
     мах, которые  непосредственно вызывают  выбранные или вообще
     не запоминать никаких данных о вызывающих подпрограммах.

5.   Нажмите Enter  или выберите  ОК для  возврата в  окно Module
     (Модуль).

     В окне  Areas ("Области"), Вы можете установить значения па-
раметров команды  Callers (Вызывающие подпрограммы) для отдельных
помеченных подпрограмм.  (Более подробную информацию относительно
окна Areas  ("Области") Вы сможете получить ознакомившись с соот-
ветствующим разделом данного руководства).

1.   Находясь в  окне Areas ("Области") выделите подпрограмму для
     которой Вы намереваетесь задать значения параметров, опреде-
     ляющих характер информации, запоминаемой о путях вызова. На-
     жмите Alt-F10 для вызова локального меню.

2.   Выберите команду  Options (Параметры),  для вызова  на экран
     блока диалога Area Options (Параметры области).

3.   Установите значения  параметра Areas  ("Области"). Вы можете
     выбрать один  из следующих вариантов: запоминать пути вызова
     только для  текущей подпрограммы, для всех подпрограмм в те-
     кущем модуле,  или вообще  для всех  подпрограмм, входящих в
     программу (включая библиотечные подпрограммы).

4.   Установите значение  параметра Callers  (Вызывающие подпрог-
     раммы). Вы имеете следующие возможности выбора значения дан-
     ного параметра:  запоминание полной  цепочки вызова  для вы-
     бранных подпрограмм,  запоминание информации  только  о  тех
     подпрограммах, которые  непосредственно вызывают  выбранные,
     отказ от запоминания какой-либо информации о вызывающих под-
     программах.

5.   Нажмите Enter  или выберите  ОК для  того, чтобы вернуться в
     окно Areas ("Области").

     На рисунке  4.15 на  левой панели  окна Callers  (Вызывающие
подпрограммы), изображаемом  после выполнения программы CALLTEST,
подпрограмма с выделена световым маркером.

/* Program CALLTEST */
/* Copyright (c) 1990, Borland International */
#include 
main()
{
  c();
  b2();
  b1();
  a();
}

a()
{
  int i;

  for (i=0; i<100; i++)
    b2();
  b1();
}

b1()
{
  int i;

  for (i=0; i<33; i++)
    c();
}

b2()
{
  int i;

  for (i=0; i<77; i++)
    c();
}

c()
{
  int i;

  for (i=0; i<3; i++)
    ;
}


     На правой  панели окна Callers (Вызывающие подпрограммы) пе-
речислены все уникальные пути вызова подпрограммы  с :

*    1 вызов из main

*    7700 по пути mаin-a-b2-c

*    33 вызова по пути main-а-b1-c

*    33 вызова по пути main-b1-c

*    77 вызовов по пути mаin-b2-c

     Окно Callers  (Вызывающие подпрограммы)  может оказаться по-
лезным в  случае если  Вы должны  принять  решение  по  изменению
структуры программы, особенно в том случае, когда какие-либо под-
программы можно вызывать по нескольким различным путям вызова.

     Для обеих  панелей окна  вызова имеются  локальные меню. Оба
элемента локального  меню правой  панели окна Callers (Вызывающие
подпрограммы) являются вызовами меню следующего уровня, как пока-
зано на следующем рисунке:

     Рис.4.16 Локальные меню окна Cаllers (Вызывающие подпрограм-
мы).

     Для того, чтобы вызвать локальное меню текущей панели нажми-
те Alt-F10.  Для перехода  с одной  панели на другую следует вос-
пользоваться клавишей  Тав. Для  непосредственного вызова  команд
меню (без предварительного вызова самого меню) применяется комби-
нация клавиш вида Ctrl-<буква>, где <буква> - это выделенная бук-
ва соответствующей команды меню.

     Команда Inspect (Просмотреть) (на левой панели)

     Вызов: Ctrl-I

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

1.   Выберите Inspect (Просмотреть) для того, чтобы на экране по-
     явился список, состоящий из названий этих окон.

2.   Выберите из списка интересующее Вас окно (Areas ("Области"),
     Module (Модуль)  или Profile  (Профиль)). В результате этого
     на экране  появится блок диалога Pick a Caller (Выберите вы-
     зывающую подпрограмму), в котором перечислены все вызывающие
     подпрограммы из текущего пути вызова.

     Рис. 4.17  Блок диалога  Pick a  Caller (Выберите вызывающую
подпрограмму)

3.   В этом  блоке диалога при помощи клавиши управления курсором
     или мыши  выделите интересующую Вас вызывающую подпрограмму,
     затем выберите ОК или нажмите Enter. Если выбранное Вами ок-
     но еще не открыто, то профилировщик открывает это окно и за-
     тем устанавливает в нем курсор на место, где расположена вы-
     зывающая подпрограмма.

     Команда Sort (Сортировка) (на правой панели)

     Вызов: Ctrl-S

     С помощью  команды Sort  (Сортировка) локального меню правой
панели окна  Callers (Вызывающие подпрограммы) вы можете произве-
сти сортировку списка путей вызова двумя способами:

*    Called (В  порядке вызова)  - сортировка  путей вызова в том
     порядке, в  котором по  этим путям  передавалось  управление
     программы в процессе ее выполнения.

*    Freguency (По частоте) - сортировка путей вызова в зависимо-
     сти от  того, насколько часто управление программы проходило
     по этим путям, в порядке убывания этой частоты.

     Окно Overlays (Оверлеи)

     В окне Overlays (Оверлеи) системы Turbo Profiler отображает-
ся информация  об использовании  оверлеев программ, созданных при
помощи систем  Turbo Pascal, Turbo C и Turbo Asseмbler. Для того,
чтобы профилировщик  начал выбирать  информацию об  использовании
оверлеев необходимо  установить элемент  меню Statistics|Overlays
(Статистика|Оверлеи) в состояние Enаbled (Включен).

     Рис. 4.18 Окно Overlays (Оверлеи)

     Информация, располагающаяся  в данном  окне может включать в
себя следующие данные:

*    данные о  том, сколько раз Ваша программа загружала в память
     каждый из оверлеев;

*    количество времени, затраченное на загрузку каждого из овер-
     леев;

*    последовательность, в которой оверлеи загружались Вашей про-
     граммой;

*    размер перекрытия.

     Как и  окно  Execution  Profile  (Профиль  выполнения)  окно
Overlays (Оверлеи)  состоит из  двух "областей" вывода, верхней и
нижней. В  верхней области вывода изображаются общее время выпол-
нения программы  и текущее  значение параметра Display (Изображе-
ние), задающего вид статистических данных о использовании оверле-
ев, находящихся в нижней области вывода. Статистические данные об
использовании оверлеев  могут быть изображены либо в виде гистог-
раммы, либо в виде списка событий.

     Для практической демонстрации того, каким образом происходит
работа в  окне Overlays  (Оверлеи), загрузите в профилировщик де-
монстрационную  программу  OURDEMO,  созданную  в  системе  Turbo
Pascal. Затем установите маркеры "области" на каждой строке моду-
ля OURDEMO,  приведите в  состояние  Enabled  (Включен)  параметр
Statistic|Overlays (Статистика|Оверлеи)  и  запустите  программу.
(Для получения  профиля данной  программы Вам  потребуются  файлы
OURDEMO.PAS, OURDEMO1.PAS, OURDEMO2.PAS и OURDEMO.EXE).

     Локальное меню  окна Overlays  (Оверлеи) состоит из двух ко-
манд:
+---------------------+       +---------------------------+
| Display       Count |       | Изображение    Количество |
| Inspect             |       | Просмотреть               |
+---------------------+       +---------------------------+

     Для вызова локального меню из окна Overlays (Оверлеи) нажми-
те CTRL-F10. Для того, чтобы воспользоваться командами локального
меню непосредственно  (без вызова  самого меню) необходимо нажать
комбинацию клавиш Ctrl-<буква>, где <буква> - это выделенная бук-
ва соответствующей команды меню.

     Команда Display (Изображение)

     Вызов: Ctrl-D

     Командой Display  (Изображение)  задается  вид  изображаемых
данных,  Вы  можете  переключаться  между  Count  (Количество)  и
History (История) при помощи клавиши Enter.

     Значение Count  (Количество) приводит  к изображению гистог-
раммы, показывающей для каждого оверлея количество занимаемой па-
мяти и число загрузок данного оверлея за время работы программы.

     Значение History  (История) влечет за собой изображение про-
цесса использования  Вашей программой  оверлеев в виде последова-
тельности событий; в каждой строке фигурирует имя оверлея и отме-
чается когда, в ходе событий программы, данный оверлей был загру-
жен.

     Команда Inspect (Просмотреть)

     Вызов: Ctrl-I

     Вызов команды Inspect ведет к автоматическому переходу в ок-
но Module (Модуль) (в случае необходимости это окно предваритель-
но открывается) и установке курсора на исходный текст выделенного
в данный момент оверлея.

     Окно Interrupts (Прерывания)

     В окне  Interrupts (Прерывания)  системы Turbo Profiler изо-
бражается информация  о различных  прерываниях (дисковых,  видео,
клавиатурных, DOS, мыши). Для того, чтобы профилировщик начал за-
поминать информацию  о вызовах  прерываний необходимо  установить
элемент меню  Statistics|Interrupts (Статистика|Прерывания) в со-
стояние Enabled (Включен).

     Рис. 4.19  Окно Interrupts (Прерывания) разделено на три па-
нели: верхнюю левую, верхнюю правую и нижнюю.

*    На верхней  левой панели  изображаются прерывания, вызванные
     Вашей программой  в ходе сеанса профилирования (показаны но-
     мера прерываний и их названия).

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

*    На нижней панели изображаются данные для каждого прерывания,
     полученные в  ходе сеанса профилирования, в виде гистограммы
     или в виде начального времени и продолжительности.

     Обе активные  панели окна  Inerrupts (Прерывания)  имеют ло-
кальные меню.

     Рис. 4.20 Локальные меню окна Interrupts (Прерывания)

     Для того,  чтобы вызвать  локальное меню текущей панели, на-
жмите Alt-F10.  Для перехода с одной панели на другую пользуйтесь
клавишей Тав. для непосредственного вызова какой-либо команды ме-
ню (без вызова самого меню), нажмите комбинацию клавиш Ctrl-<бук-
ва>, где <буква> - это буква, выделенная в названии соответствую-
щей команды.

     Каждый из элементов нижней панели может включать в себя сле-
дующие данные:

*    название прерывания и его номер (или и то и другое вместе);

*    количество вызовов данного прерывания (в абсолютном виде и в
     относительном, выраженном в процентах);

*    общее количество  времени, занятое данным прерыванием (в аб-
     солютном виде и в относительном, выраженном в процентах).

     Команда Collection (Сбор) (на верхней панели)

     Вызов: Ctrl-C

     Команда Collection  (Сбор) блокирует  или разблокирует  сбор
статистических данных  для текущего  прерывания (того прерывания,
которое в  данный момент  выделено в левой области вывода верхней
панели).

     Команда Subrountines (Подпрограммы) (на верхней панели)

     Вызов: Ctrl-S

     Команда Subrountines  (Подпрограммы) блокирует или разблоки-
рует сбор статистических данных для подпрограмм текущего прерыва-
ния (эта команда особенно полезна в случае вызовов прерывания DOS
INT 21H).  Адреса подпрограммы определяются по значению, содержа-
щемуся в регистре АН в момент вызова прерывания.

     Команда Add (Добавить) (на верхней панели)

     Вызов: Ctrl-A

     Команда Add  (Добавить) добавляет прерывание, по его номеру,
к списку, находящемуся в левой области вывода данной панели. (Но-
мер прерывания необходимо задавать в десятичном виде).

     Команда Pick (Выбрать) (на верхней панели)

     Вызов: Ctrl-P

     В результате выполнения команды Pick (Выбрать) на экране по-
является заранее  определенный список  прерываний, из которого Вы
можете выбрать какое-либо прерывание для того, чтобы добавить его
к содержимому левой области вывода этой панели.

     Команда Remove (Убрать) (на верхней панели)

     Вызов: Ctrl-R

     Команда Remove  (Убрать) удаляет текущее выделенное прерыва-
ние из  списка прерываний,  находящегося в  левой области  вывода
данной панели.

     Команда Delete All (Убрать все) (на верхней панели)

     Вызов: Ctrl-D

     Команда Delete  All (Убрать  все) приводит  к удалению всего
списка прерываний, находящегося в левой области вывода данной па-
нели.

     Команда Dispaly (Изображение) (на нижней панели)

     Вызов: Ctrl-D

     Локальное меню  нижней панели  окна Interrupts  (Прерывания)
состоит только  лишь из  одной команды Display (Изображение), при
помощи этой  команды вызывается  меню следующего  уровня, которое
позволяет выбрать  один из следующих четырех форматов изображения
статистических данных,  характеризующих работу  Вашей программы с
прерываниями:



Time (Время)                        Изображается количество  вре-
                                    мени, затраченное  на  работу
                                    каждым из  прерываний  и  его
                                    подфункциями.

Calls (Вызовы)                      Изображается количество вызо-
                                    вов каждого  прерывания и его
                                    подфункций.

Both Time and Calls (И время и      Изображается  как  количество
вызовы)                             времени, затраченное на рабо-
                                    ту, так  и число вызовов каж-
                                    дого прерывания и его подфун-
                                    кций.

Events (События)                    Изображается упорядоченный по
                                    времени список вызовов преры-
                                    ваний.


     Окно Files (Файлы)

     В окне  Files (Файлы) Turbo Profiler изображает данные о ра-
боте Вашей программы с файлами. Для того, чтобы профилировщик на-
чал запоминать какую-либо информацию об обращениях Вашей програм-
мы к  файлам (для чтения, записи, открытия или закрытия), необхо-
димо установить  элемент меню Statistics|Files (Статистика|Файлы)
в состояние  Enabled (Включен)  (в этом состоянии он находится по
умолчанию).

     Рис. 4.21 Окно Files (Файлы)

     Окно Files  (Файлы) разделено  на три панели: верхнюю левую,
верхнюю правую и нижнюю.

     На верхней  левой панели  перечислены имена  файлов, включая
STDIN   и STDOUNT. Как только Вы выделили на левой панели интере-
сующий Вас файл, на правой панели появляется следующая информация
об этом файле:

*    логический номер;

*    время открытия файла;

*    продолжительность времени  в течение  которого файл  был от-
     крыт;

*    число выполненных  операций чтения из данного файла и записи
     в него;

*    общее количество  байт считанных из файла и записанных в не-
     го;

*    время, затраченное  на каждую из выполненных операций чтения
     и записи;

*    количество времени, требующееся для закрытия файла.

     Верхняя правая  панель служит  исключительно для изображения
информации. Эта панель не имеет локального меню и Вы не можете на
нее перейти.

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

     Обе активные панели окна Files (Файлы) имеют локальные меню.

     Рис. 4.22 Локальные меню окна Files (Файлы)

     Для перехода  с одной панели описываемого окна на другую не-
обходимо пользоваться  клавишей Тав.  Для вызова  локального меню
текущей панели нажмите Ctrl-F10. Для того, чтобы напрямую вызвать
какую-либо команду  локального меню, необходимо нажать комбинацию
клавиш вида  Ctrl-<буква>, где <буква> - это выделенная буква со-
ответствующего элемента меню.

     Команда Collection (Сбор) (на верхней панели)

     Вызов: Ctrl-C

     Команда Collection  (Сбор) блокирует  или разблокирует  сбор
статистических данных  о файловых  операциях для  текущего  файла
(того файла,  который в данный момент выделен в левой области вы-
вода на верхней панели).

     Каждый элемент  нижней панели  окна Files  (Файлы) описывает
операции, произведенные над данным файлом.

     Команда Detail (Детализация) (на верхней панели)

     Вызов: Ctrl-D

     Команда Detail  (Детализация) регулирует степень подробности
статистических данных о работе программы с файлами. В том случае,
когда этот  элемент меню  находится в состоянии Enables (Включен)
происходит подробная фиксация всех файловых операций, каждая опе-
рация чтения  или записи  учитывается отдельно и для каждой такой
операции запоминается в какой момент времени, относительно начала
выполнения программы, была задействована данная операция, а также
запоминается число  переданных байт. Если же рассматриваемый эле-
мент меню  находится в  состоянии Disabled  (Отключен), то в этом
случае отдельно  запоминаются только операции открытия и закрытия
файлов, данные  же об операциях чтения и записи для каждого файла
суммируются.

     Команда When Full (В случае заполнения) (на верхней панели)

     Вызов: Ctrl-W

     Командой When  Full (В  случае заполнения) задаются действия
профилировщика в случае заполнения области памяти, выделенной для
хранения статистических данных о работе программы с файлами.

     Wrap (Переход  к началу)  означает, что  в случае заполнения
данной области  памяти, вновь поступающие статистические данные о
работе программы  с файлами записываются на место поступивших ра-
нее.

     Stop (Стоп)  означает, что, в случае заполнения данной обла-
сти памяти, данные о работе программы с файлами перестают запоми-
наться.

     Команда Display (Изображение) (на нижней панели)

     Вызов: Ctrl-D

     Локальное меню  нижней панели  окна Files (Файлы) состоит из
одной команды  Display (Изображение), выполнение которой приводит
к появлению  на экране  блока диалога  Display Options (Параметры
изображения), показанного на рисунке.

     Рис. 4.23  Блок диалога Dispaly Options (Параметры изображе-
ния)

     В этом  блоке диалога Вы можете установить значение двух па-
раметров: Dispaly  (Изображение) и Sort (Сортировка).

*    Display (Изображение)  определяет в каком виде на нижней па-
     нели изображаются статистические данные.

          В случае значения Graph (Графическое) продолжительность
          каждой операции  изображается в виде горизонтальной ди-
          аграммы.

          В случае  значения  Detail  (Точное)  продолжительность
          каждой операции  изображается в  виде точного числа се-
          кунд.

*    Sort (Сортировка)  задает порядок  в котором  система  Turbo
     Profiler сортирует собранные статистические данные.

          Значение Start  Time (Начальное  время) приводит к изо-
          бражению статистических данных в том порядке, в котором
          они были получены.

          Значения Duration (Продолжительность) приводит к сорти-
          ровке статистических  данных  в  зависимости  от  того,
          сколько времени  заняло выполнение  операции  открытия,
          чтения, записи или закрытия файла.

     Окно Areas ("Области")

     В окне  Areas ("Области")  системы Turbo  Profiler находится
подробная информация  относительно "областей" профилирования, по-
меченных в  Вашей программе. Используйте это окно для того, чтобы
убедиться в  том, что  команды Add|Remove Areas (Добавить|Удалить
области) локального  меню окна Module (Модуль) привели к желаемым
результатам, а также для задания параметров избранных "областей".

     Рис. 4.24 Окно Areas ("Области")

     По умолчанию  "области" в окне Areas ("Области") перечислены
в алфавитном порядке. Обычно имена "областей" совпадают с именами
подпрограмм, соответствующих  данным "областям". Если же Вы поме-
тили в  качестве "областей"  все строки  в подпрограмме, то имена
"областей" имеют следующий вид:

     <имя модуля>.<имя файла>.NN

     где <имя модуля> - это имя модуля, к которому относится дан-
ная строка,  <имя файла>  - это имя файла в котором данная строка
содержится, а NN - это номер строки. Если Вы пометили строку, ко-
торая в самой программе имеет какую либо метку (например имя под-
программы), то эта программная метка используется профилировщиком
в качестве имени области.

     Примечание: Элемент <имя файла> появляется в имени "об-
     ласти", только  в том случае, когда текст рассматривае-
     мого модуля размещен в нескольких файлах.

     В окне  Areas ("Области")  для каждой  помеченной  "области"
изображается следующая информация:

*    Start (Начало): шестнадцатиричный начальный адрес;

*    Length (Длина):  размер в  байтах в  виде шестнадцатиричного
     числа;

*    Clock (Часы):  тип часов (отдельные или общие), используемых
     во вложенных "областях";

*    Action (Действия):  работа "области" (какие действия необхо-
     димо произвести  системе Turbo Profiler при попадании в дан-
     ную "область" и выходе из нее)

*    Callers (Вызывающие  подпрограммы): действия  профилировщика
     по отслеживанию  путей вызова  данной "области" (запоминание
     только лишь  подпрограмм, непосредственно  вызывающих данную
     область, запоминание полных путей вызова или вообще отказ от
     запоминания какой-либо  информации о  вызывающих подпрограм-
     мах)

     Окно Areas  ("Области") обладает более широкими возможностя-
ми, чем  просто статическое отображение информации. С помощью ло-
кального меню данного окна
+-------------------+       +--------------------+
| Add areas         |       | Добавить "области" |
| Remove areas      |       | Убрать "области"   |
| Inspect           |       | Просмотр           |
|-------------------|       |--------------------|
| Options...        |       | Параметры          |
| Sort        Name  |       | Сортировка         |
+-------------------+       +--------------------+

     Вы можете сделать следующее:

*    добавить или удалить "области";

*    просмотреть "области";

*    изменить значения параметров какой-либо "области";

*    произвести сортировку  изображенной статистической  информа-
     ции.

     Для вызова локального меню данного окна нажмите Alt-F10. Для
того чтобы напрямую воспользоваться какой-либо командой меню (без
вызова самого меню) нажмите комбинацию клавиш вида: Ctrl-<буква>,
где <буква> - это выделенная буква соответствующей команды.

     Команда Add Areas (Добавить "области")

     Вызов: Ctrl-A

     Команда Add  Areas (Добавить "области") используется для то-
го, чтобы  пометить все  подпрограммы в  текущем модуле, либо от-
дельную подпрограмму  в качестве "области". Эта команда похожа на
команду Add  Areas  (Добавить  "области")  локального  меню  окна
Module (Модуль).

     Команда Remove Areas (Убрать "области")

     Вызов: Ctrl-R

     Команда Remove  Areas (Убрать  "области") удаляет всю стати-
стическую информацию,  собранную для  рассматриваемой "области" и
снимает с нее маркеры "области".

     Команда Inspect (Просмотр)

     Вызов: Ctrl-I

     В результате  выполнения команды Inspect (Просмотр) профили-
ровщик переключается на работу с окном Module (Модуль) и помещает
курсор этого  окна на первую строчку исходного текста, соответст-
вующего текущей "области" ("области", выделенной в окне Areas).

     Команда Options (Параметры)

     Вызов: Ctrl-O

     В результате  выполнения команды Options (Параметры) локаль-
ного меню  окна Areas ("Области"), на экране появляется блок диа-
лога Area Options  (Параметры "области").

     Рис. 4.25 Блок диалога Area Options (Параметры "области")

     В этом блоке диалога Вы можете задать значения трех парамет-
ров: Option  (Режим работы),  Callers (Вызывающие подпрограммы) и
Timing (Подсчет времени):

*    Operation (Режим  работы)  задает  действия  профилировщика,
     производимые при работе данной "области":

          Normal (Нормальный).  В этом режиме сбор статистических
          данных для рассматриваемой "области" происходит в соот-
          ветствии со  значениями  параметров,  заданных  в  меню
          Statistics (Статистика)  (данные о  вызывающих подпрог-
          раммах, обращениях  к файлам, обращениях к прерываниям,
          работе  с  оверлеями  и  т.д.)  и  блоке  диалога  Area
          Operations (Режим  работы в  "области"), который  можно
          вызвать из  локальных меню окон Module (Модуль) и Areas
          ("Области").

          Stop (Остановка).  При достижении  маркера данного типа
          выполнение программы приостанавливается.

          Enable (Включить).  При достижении маркера данного типа
          разблокируется сбор статистических данных.

          Disable (Отключить) Временно отключает сбор статистиче-
          ских данных при достижении данной точки программы.

*    Timing (Подсчет вpемени). Этим паpаметpом опpеделяется будет
     ли пpибавляться  вpемя выполнения данной "области" ко вpеме-
     нам выполнения "областей" более высокого уpовня.

          Sеparate (Отдельный).  Пpи подсчете вpемени, задаваемом
          этим значением  паpаметpа Timing (Подсчет вpемени) каж-
          дый импульс таймеpа увеличивает только вpемя выполнения
          данной "области"  и никак не влияет на вpемя выполнения
          "области" из котоpой была вызвана данная.

          Combined (Объединенный).  В этом  случае каждый импульс
          таймеpа пpиводит  к увеличению  подсчитываемого вpемени
          выполнения как  для данной "области", так и для вызвав-
          шей ее.

*    Callers (Вызывающие подпрограммы). Данный параметр определя-
     ет степень подробности информации о путях вызова, запоминае-
     мой профилировщиком для текущей "области".

          All Callers (Все вызывающие подпpогpаммы). Это значение
          паpаметpа пpиводит  к запоминанию  всей  доступной  ин-
          фоpмации о  путях вызовов,  для  подпpогpамм,  заданных
          паpаметpом Areas ("Области").

          Immediate Callers (Подпpогpаммы, вызывающие непосpедст-
          венно). Это  значение паpаметpа ведет к запоминанию ин-
          фоpмации только  о том,  какие подпpогpаммы непосpедст-
          венно вызывают текущую подпрограмму.

          None (Никакие).  Это значение  паpаметpа блокиpует сбоp
          инфоpмации о стеках вызова для текущей подпpогpаммы.

     Следующий рисунок  иллюстрирует процесс  подсчета времени  в
случае, когда  параметр Timing (Подсчет времени), соответствующий
вызывающей подпрограмме имеет значение Combined (Совместный).

     Рис. 4.26 Подсчет времени.

     На этом  рисунке для  подпрограммы в1  установлен совместный
режим подсчета времени. Подпрограмма в1 вызывает подпрограмму с1,
следовательно время выполнения с1 будет прибавлено ко времени вы-
полнения в1.  Часть времени  выполнения с1 на самом деле тратится
на выполнение  подпрограммы d1, так как для подпрограммы с1 также
установлен совместный режим подсчета времени.

     Как из  подпрограммы в1, так и из подпрограммы в2 происходит
обращение к подпрограмме с2.

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

*    В случае же вызова подпрограммы с2 из подпрограммы в2, время
     выполнения подпрограммы  с2 не  входит во  время  выполнения
     подпрограммы в2,  поскольку для  подпрограммы в2  установлен
     раздельный режим подсчета времени.

     Команда Sort (Сортировка)

     Вызов: Ctrl-S

     При помощи  команды Sort  (Сортировка) можно переупорядочить
информацию, изображенную в окне Areas ("Области"). Вы можете рас-
положить эту  информацию либо  в алфавитном  порядке (по именам),
либо в числовом (по адресам). В случае упорядочения этой информа-
ции по  адресам ее  расположение в  большей степени соответствует
расположению "областей" в исходном тексте.

     Окно Rоutines (Подпрограммы)

     В окне  Routines (Подпрограммы)  система Turbo Profiler изо-
бражает список всех подпрограмм, которые Вы можете пометить в ка-
честве "областей".  Это окно можно использовать в случае когда Вы
забыли имя  какой -нибудь подпрограммы или если Вы решили посмот-
реть какие из подпрограмм Вашей программы помечены как "области".
При помощи  команды Inspect  (Просмотреть) Вы можете приступить к
работе с  каким-нибудь другим  модулем, для  этого при выполнении
команды Inspect  (Просмотреть) необходимо  выбрать  подпрограмму,
входящую в интересующий Вас модуль.

     Рассматриваемое окно  облегчает Вам  доступ к  символической
информации Вашей программы.

     Основная часть  информации, изображенной в данном окне - это
список всех  глобальных символических  имен, извлеченный из отла-
дочной информации,  находящейся в  выполнимом файле.  Этот список
включает в  себя имена  всех функций  и подпрограмм,  входящих  в
стандартные библиотеки  систем Turbo  C и  Turbo Pascal,  а также
имена подпрограмм  из каких-либо других используемых Вами библио-
тек (конечно  в том  случае если  Вы производили компоновку Вашей
программы с включением отладочной информации о символах).

     Рис. 4.27 Окно Routines (Подпрограммы)

     Окно Routines  (Подпрограммы) состоит из двух панелей: левой
и правой.  На левой  панели перечислены  глобальные  подпрограммы
профилируемой Вами  программы, а на правой панели перечислены ло-
кальные подпрограммы текущего модуля Вашей программы.

     Локальные подпрограммы включают в себя вложенные подпрограм-
мы и  функции в  Паскале и статичные функции в С. Глобальные под-
программы, текст  которых доступен, изображены на правой панели с
выделением. (По  умолчанию, символ подчеркивания (_) предшествует
именам всех  глобальных переменных в программах, созданных в сис-
теме Turbo C).

     Обе панели  окна Routines (Подпрограммы) имеют локальные ме-
ню.

     Рис. 4.28 Локальные меню окна Routines (Подпрограммы)

     Для переключения  между панелями  данного  окна  используйте
клавишу Тав.  Для вызова  локального меню  текущей панели нажмите
Alt-F10. Для  того, чтобы непосредственно обратиться к какой-либо
команде локального  меню (без непосредственного вызова самого ме-
ню) воспользуйтесь  комбинацией клавиш  вида:  Ctrl-<буква>,  где
<буква> - это выделенная буква соответствующей команды.

     Команда: Local Module (Локальный модуль) (на правой панели)

     Вызов: Ctrl-L

     Если, находясь  на панели  Clobal Routines  (Глобальные под-
программы) (правая панель рассматриваемого окна), Вы вызовите ко-
манду Local  Module (Локальный  модуль), на  экране появится блок
диалога Pick a Module (Выберите модуль), в котором будут перечис-
лены все модули, составляющие Вашу программу.

     Рис. 4.29 Блок диалога Pick a Module (Выберите модуль)

     После того,  как Вы выберете какой-нибудь модуль и затем на-
жмете ОК,  профилировщик изобразит локальные символы этого модуля
на правой панели окна Routines (Подпрограммы).

     Команда Areas ("Области") (на обеих панелях)

     Вызов: Ctrl-A ("Области")

     Выполнение команды  Areas ("Области")  приводит к  тому, что
открывается окно Areas ("Области") и в этом окне выделяется теку-
щая подпрограмма  (т.е. подпрограмма,  выделенная в окне Routines
(Подпрограммы))

     Команда Cаllers (Вызывающие подпрограммы) (на обеих панелях)

     Вызов: Ctrl-C

     Команда Callers  (Вызывающие  подпрограммы)  открывает  окно
Callers (Вызывающие  подпрограммы) и показывает в этом окне какие
из подпрограмм  вызывают рассматриваемую  в настоящий момент под-
программу.

     Команда Module (Модуль) (на обеих панелях)

     Вызов: Ctrl-M

     Действие команды Module (Модуль) заключается в открытии окна
Module (Модуль)  и изображении в этом окне исходного текста теку-
щей подпрограммы.

     Команда Profile (Профиль) (на обеих панелях)

     Вызов: Ctrl-S

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

     Окно Disassembly (CPU) (Дисассемблер (ЦПУ))

     Окно Disassembly  (Дисассемблер) (на  экране помеченное  как
CPU (ЦПУ))  содержит в  себе изображение  текущей "области"  окна
Module (Модуль) в виде исходного текста, полученного в результате
дисассемблирования. Окно  Disassembly (Дисассемблер) используется
в случае, когда Вам необходимо принять решение о том, чтобы пере-
писать какие-либо части Вашей программы на языке ассемблера.

     Рис. 4.30 Окно Disassembly CPU (Дисассемблер (ЦПУ))

     В левой  части каждой  из строк, полученных в результате ди-
сассемблирования содержится адрес команды, либо в виде шестнадца-
тиричного значения :<смещение>, либо, в случае если зна-
чение сегмента  неизменно, вместо него делается ссылка на текущее
значение регистра  CS и адрес записывается в виде CS: <смещение>.
Если окно достаточно широко (распахнуто или расширено) в нем так-
же изображаются  байты, составляющие команду. В правой части каж-
дой строки показана символическая запись каждой из команд.

     В окне  Disassembly (CPU)  (Дисассемблер (ЦПУ)),  глобальные
символы обозначаются просто своими именами. Статические же симво-
лы изображаются в виде:

     <имя модуля>.<имя символа> /* Turbo C */

     <имя модуля>#<имя символа> {Turbo Pascal}

     где <имя модуля> это имя модуля в котором находится статиче-
ская переменная с именем <имя символа>. Номера строк изображаются
в данном окне в виде:

     <имя модуля>.<номер строки> /* Turbo C */

     <имя модуля>#<номер строки> {Turbo Pascal}

     где <номер  строки> -  это десятичный  номер строки модуля с
именем <имя модуля>.

     В окне  Disassembly CPU (Дисассемблер (ЦПУ)) Вы можете поль-
зоваться клавишей F2 для того, чтобы пометить маркерами "области"
любую машинную команду, за выполнением которой Вы хотите понаблю-
дать. Помеченная таким образом машинная команда фигурирует в окне
Areas ("Области")  в виде шестнадцатиричного адреса в форме <сег-
мент>:<смещение>.

     При помощи  команд локального меню окна Disassembly CPU (Ди-
сассемблер (ЦПУ)):
+----------------+       +-----------------------------+
| Goto           |       | Переход                     |
| Origin         |       | Начало                      |
| Follow         |       | Следующий                   |
| Previous       |       | Предыдущее                  |
| View source    |       | Просмотреть исходный текст  |
| Mixed      Yes |       | Смешанный                   |
+----------------+       +-----------------------------+



     Вы можете  быстро переместиться  на следующие  участки Вашей
программы:

*    на заданный адрес, для того, чтобы просмотреть код;

*    на текущий адрес программы (CS:IP);

*    на адрес назначения текущей команды;

*    на адрес указателя предыдущей команды;

*    на адрес в исходном тексте.

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

     Для вызова локального меню данного окна нажмите Alt-F10. Для
того, чтобы  непосредственно обратиться  к  какой-нибудь  команде
данного меню  (без предварительного  вызова самого меню) пользуй-
тесь комбинацией  клавиш вида Ctrl-<буква>, где <буква> - это вы-
деленная буква соответствующей команды.

     Команда Goto (Переход)

     Вызов: Ctrl-G

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

     Команда Origin (Начало)

     Вызов: Ctrl-O

     Команда Origin  (Начало) используется для перемещения на те-
кущий адрес  программы, задаваемый  значениями,   находящимися  в
двух регистрах  CS:IP. Эта команда полезна в случае если Вы пере-
мещались по тексту Вашей программы и в какой-то момент у Вас воз-
никло желание  вернуться обратно,  на адрес,  задаваемый  текущим
значением указателя  команд (CS:IP), т.е. на ту команду, на кото-
рой остановилось выполнение Вашей программы.

     При помощи команды Previous (Предыдущее) Вы можете восстано-
вить предыдущее  состояние окна  Disassembly (CPU)  (Дисассемблер
(ЦПУ)), измененное  в результате выполнения команды Origin (Нача-
ло).

     Команда Follow (Следующий)

     Вызов: Ctrl-F

     В результате  выполнения команды  Follow (Следующий)  в окне
Disassembly (CPU) (Дисассемблер (ЦПУ)) выделяется команда с адре-
сом, равным  адресу назначения  текущей выделенной команды. Текст
дисассемблированной программы  прокручивается до тех пор, пока на
экране не  появится команда, на которую передается управление те-
кущей выделенной  командой. Для условных переходов считается, что
условие перехода выполнено и осуществляется переход по соответст-
вующему адресу.

     Вы можете применять данную команду по отношению к операторам
ассемблера CALL,  INT, JMP,  условным переходам  (JZ, JNE,  LOOP,
JCXZ и т.д.).

     При помощи команды Previous (Предыдущее) Вы можете восстано-
вить предыдущее  состояние окна  Disassembly (CPU)  (Дисассемблер
(ЦПУ)), в  котором данное  окно находилось  до выполнения команды
Follow (Следуй).

     Команда Previous (Предыдущее)

     Вызов: Ctrl-P

     После выполнения какой-либо команды, изменяющей адрес, нахо-
дящийся в  указателе команд  (такой команды  как Goto  (Переход),
Origin (Начало) или Follow (Следуй)), при помощи команды Previous
(Предыдущее) Вы  можете вернуться  назад ка адресу, на котором Вы
находились до  выполнения какой-нибудь  из перечисленных  команд.
Если же  Вы перемещаетесь  по тексту  с помощью клавиш управления
курсором и клавиш PgUp и PgDn, то профилировщик не запоминает Ва-
шего местонахождения,  но тем не менее Вы всегда можете вернуться
к началу, по адресу, находящемуся в данный момент в CS:IP.

     Если Вы  используете команду Previous (Предыдущее) несколько
раз подряд,  то при  этом окно  Disassembly  (CPU)  (Дисассемблер
(ЦПУ)) будет переключаться поочередно между двумя адресами.

     Команда View Source (Просмотреть исходный текст)

     Вызов: Ctrl-V

     Команда View  Source (Просмотреть исходный текст) приводит к
открытию окна Module (Модуль) и изображению в этом окне исходного
текста текущей подпрограммы.

     Команда Mixed (Смешанный)

     Вызов: Ctrl-M

     Существует три  варианта изображения дисассемблированных ко-
манд и  исходного текста  в окне  Disassembly (CPU) (Дисассемблер
(ЦПУ)). Вы  можете выбрать один из возможных форматов изображения
при помощи команды локального меню Mixed (Смешанный), позволяющей
переключаться между  тремя значениями:  No (Нет), Yes (Да) и Both
(Оба).

      No  (Нет) означает,  что изображаются только дисассемблиро-
     ванные команды, без показа исходного текста.
     Тем не  менее в режиме No (Нет) вместо адресов вызовов и пе-
     реходов, а также ссылок на элементы данных используются гло-
     бальные имена.

*    Yes (Да)  ведет к  тому, что изображение имеет вид в котором
     за каждой строкой исходного текста следуют дисассемблирован-
     ные команды, соответствующие данной строке.

     Профилировщик автоматически  устанавливает режим изображения
     в состояние Yes (Да) в том случае, если исходный текст теку-
     щего модуля написан на языке высокого уровня.

*    Both (Оба)  означает, что  в случае  если  имеется  исходный
     текст для дисассемблированных команд, то изображается только
     этот текст,  в противном случае изображаются сами дисассемб-
     лированные команды.

     Профилировщик автоматически  устанавливает режим изображения
     в состояние Both (Оба) в том случае, если исходный текст те-
     кущего модуля написан на языке ассемблера.

     Используйте режим Both (Оба) при работе с модулями, написан-
ными на  языке ассемблера,  если Вы  хотите, чтобы  на экране был
изображен подлинный  исходный текст, а не соответствующие ему ди-
сассемблированные команды.

     Меню Run (Выполнение)
+------------------------+  +-----------------------------------+
| Run                 F9 |  | ВыполнениеF9                      |
| Program reset  Ctrl-F2 |  | Реинициализация программы Ctrl-F2 |
| Arguments...           |  | Аргументы                         |
+------------------------+  +-----------------------------------+



     Меню Run  (Выполнение) состоит из трех команд, предназначен-
ных для  выполнения Вашей  программы: Run  (Выполнение),  Program
Reset (Реинициализация программы) и Arguments (Аргументы). Управ-
ление возвращается  к профилировщику в случае возникновения одной
из следующих ситуаций:

*    Выполнение Вашей программы заканчивается.

*    В процессе  выполнения Вашей  программы  встречается  маркер
     "области" со  значением Stop (Остановка) параметра Operation
     (Работа).

*    Вы сами прервали выполнениие программы с помощью нажатия со-
     ответствующей комбинации клавиш.

     (Обычно для того, чтобы остановить работу программы, исполь-
зуется комбинация  клавиш Ctrl-Break.  Вы можете задать какую-ни-
будь другую  комбинацию при  помощи TFINST,  инсталляционной про-
граммы профилировщика. Более подробные сведения об этой программе
Вы сможете получить, обратившись к приложению Б).

     Вы можете  выполнить Вашу  программу даже в том случае, если
окно Module  (Модуль) закрыто  (Конечно, в  том случае,  когда  в
Turbo Profiler загружена какая-нибудь программа)

     Важное замечание:  Если Вы  выбираете  команду  Run|Run
     (Выполнение|Выполнение) или Run|Program Reset (Выполне-
     ние|Реинициализация программы),  то вся статистика, со-
     бранная во  время предыдущего  выполнения,  обнуляется.
     Если Вы  хотите сохранить статистические данные, то Вам
     необходимо  воспользоваться   командой   Statistic|Save
     (Статистика|Сохранить) перед  выполнением или реинициа-
     лизацией Вашей программы.

     Команда Run (Выполнение)

     Вызов: F9

     В результате  выбора команды Run (Выполнение) происходит вы-
полнение Вашей  программы и сбор статистических данных о процессе
ее выполнения.

     Если Вы  зададите значение Always (Всегда) параметра Display
Swapping (Замена  экрана), то  до тех  пор пока  выполнение Вашей
программы не закончится или Вы его не прервете, на экране, вместо
картинки среды  системы Turbo Profiler, будут изображаться данные
выводимые Вашей программой.

     Если Вы установите значение None (Никакой) параметра Display
Swapping (Замена  экрана), то  в этом  случае во время выполнения
Вашей программы на экране будет оставаться картинка среды системы
Turbo Profiler,  но в  правом верхнем  углу экрана появится слово
RUNNING (Выполняется).

     Команда Program Reset (Реинициализация программы)

     Вызов: Ctrl-F2

     Команда Run|Program  Reset (Выполнение|Реинициализация  про-
граммы) производит  перезагрузку Вашей программы с диска. Исполь-
зуйте эту  команду если  при получении профиля Вашей программы ее
выполнение зашло  слишком далеко  и Вам  необходимо перезапустить
программу с самого начала.

     Если Вы  выберете команду Run|Program Reset (Выполнение|Реи-
нициализация программы)  и, в  момент этого  выбора, окно  Module
(Модуль) или  Disassembly (CPU)  (Дисассемблер (ЦПУ)) будет нахо-
диться в активном состоянии, то изображение в соответствующем ок-
не не  вернется к  началу программы.  Вместо этого курсор данного
окна останется в том самом месте, где он находился в момент вызо-
ва команды Program reset (Реинициализация программы).

     Команда Argument (Аргументы)

     Программа, профиль которой Вы получаете, может ожидать ввода
аргументов в  командной строке.  При помощи команды Run|Arguments
(Выполнение|Аргументы) Вы можете задать аргументы командной стро-
ки Вашей  программы. После этого, при выборе Вами команды Run|Run
(Выполнение|Выполнение) или  Run|Program Reset (Выполнение|Реини-
циализация программы),  профилировщик  передает  аргументы  Вашей
программе точно  также, как  если бы  они вводились  в  командной
строке.Не выходя  из системы  Turbo Profiler,  Вы можете изменить
значения этих аргументов и произвести повторный запуск Вашей про-
граммы.

     Введите аргументы  в точности также, как Вы бы это сделали в
командной строке DOS. (Имя программы при этом водить не нужно).

     Меню Statistic (Статистика)

+-----------------------+       +---------------------------+
| Callers      Disabled |       | Вызывающие подпрограммы   |
| Files         Enabled |       | Файлы                     |
| Interrupts   Disabled |       | Прерывания                |
| Overlays      Enabled |       | Оверлеи                   |
|-----------------------|       |---------------------------|
| Profiling options...  |       | Параметры профилирования  |
| Accumulation  Enabled |       | Накопление       Включено |
| Delete all            |       | Удалить все               |
|-----------------------|       |                           |
| Save...               |       | Сохранить                 |
| Restore...            |       | Восстановить              |
+-----------------------+       +---------------------------+

     Меню Statistics  (Статистика) содержит в себе команды, пред-
назначенные для того, чтобы:

*    задавать тип  данных, собираемых  профилировщиком (данные  о
     вызывающих подпрограммах, файлах, прерываниях, перекрытиях);

*    устанавливать режим работы профилировщика (активный или пас-
     сивный);

*    задавать число выполнений программы и количество "областей";

*    включать и отключать автоматический сбор данных;

*    уничтожать статистику,  полученную в результате профилирова-
     ния;

*    считывать в  систему Turbo Profiler предварительно сохранен-
     ные данные.

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

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

     Затем Вы можете с вечера запустить этот макрос и вернуться к
Вашему компьютеру за результатами только на следующее утро.

     Параметр Callers (Вызывающие подпрограммы)

     Если Вы  установите параметр Callers (Вызывающие подпрограм-
мы) в  состояние Enabled  (Включен), то профилировщик будет соби-
рать информацию  о том, какие из подпрограмм вызывают другие под-
программы. Для  того, чтобы  указать для каких именно подпрограмм
Вы хотите  запоминать историю вызовов, необходимо воспользоваться
командой Callers  (Вызывающие подпрограммы)  локального меню окна
Module (Модуль)  или командой Options (Параметры) локального меню
окна Areas  ("Области") и затем выбрать соответствующие селектив-
ные кнопки Callers (Вызывающие подпрограммы) и Areas ("Области").

     Примечание: Какая-либо информация появляется в этих ок-
     нах только  после того, как Вы выполните Вашу программу
     и соберете для нее какие-нибудь статистические данные.

     После выполнения  Вашей программы  и получения ее профиля Вы
можете в  окне Callers  (Вызывающие подпрограммы)  ознакомиться с
данными о вызовах подпрограмм.

     Сбор информации о вызывающих подпрограммах занимает память и
замедляет работу  программы. Если Вы не нуждаетесь в информации о
вызывающих подпрограммах, установите параметр Callers (Вызывающие
подпрограммы) в состояние Disabled (Отключен).

     Параметр Files (Файлы)

     Если  Вы  установите  параметр  Files  (Файлы)  в  состояние
Enabled (Включен),  то профилировщик  будет собирать информацию о
том, какие  файлы открываются  Вашей программой, а также данные о
всех операциях чтения и записи производимых над этими файлами.

     После выполнения  Вашей программы  и получения ее профиля Вы
можете в  окне Files  (Файлы) ознакомиться  с тем, как в процессе
выполнения, Ваша программа работала с файлами.

     Сбор информации  о работе Вашей программы с файлами занимает
память и замедляет работу программы. Если Вы не нуждаетесь в этой
информации, установите  параметр Files  в состояние Disabled (От-
ключен).

     Параметр Interrupts (Прерывания)

     Если Вы установите параметр Interrupts (Прерывания) в состо-
яние Enabled  (Включен), то профилировщик будет собирать информа-
цию о  прерываниях, вызываемых  Вашей  программой.  Профилировщик
проводит раздельный  учет статистических  данных  для  прерываний
DOS, видеоадаптеров, клавиатуры и BIOS дисков.

     После выполнения  Вашей программы  и получения ее профиля Вы
можете в  окне Interrupts (прерывания) ознакомиться с информацией
о том, какие из прерываний вызывались Вашей программой.

     Сбор информации  о прерываниях, вызываемых Вашей программой,
занимает память  и замедляет работу программы. Если Вы не нуждае-
тесь в  этой информации, установите параметр Interrupts (Прерыва-
ния) в состояние Disabled (Отключен).

     Параметр Overlays (Оверлеи)

     При помощи  параметра Overlays  (Оверлеи) Вы можете включить
или отключить сбор информации о работе Вашей программы с оверлея-
ми.

     Если Ваша программа не содержит оверлеев, то на экране появ-
ляется сообщение  об  ошибке  и  параметр  остается  в  состоянии
Disabled (Отключен).

     Сбор информации о работе Вашей программы с оверлеями занима-
ет память  и замедляет работу Вашей программы. Если Вы не нуждае-
тесь в  этой информации установите рассматриваемый параметр в со-
стояние Disabled (Отключен).

     Команда Profiling Options (Параметры профилирования)

     Выбор команды Statistics|Profiling Options (Статистика|Пара-
метры  профилирования)   приводит  к   появлению  блока   диалога
Profiling Options (Параметры профилирования).

     Рис. 4.31 Блок диалога Profiling Options (Параметры профили-
рования)

     С помощью  блока диалога Profiling Options (Параметры профи-
лирования) Вы можете задать значение любого из следующих парамет-
ров:

*    Profile Mode  (Режим профилирования) определяет режим, в ко-
     тором профилировщик анализирует Вашу программу. По умолчанию
     данный параметр имеет значение Active (Активный).

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

     В режиме  пассивного анализа  профилировщик собирает  только
     временную информацию о каждой помеченной подпрограмме.

*    Run Count  (Число выполнений)  задает число выполнений Вашей
     программы, во  время которых  происходит сбор статистических
     данных. По умолчанию значение данного параметра равно 1.

*    Maximum Areas  (Максимальное количество  "областей")  задает
     максимальное количество  "областей", которые Вы можете поме-
     тить в своей программе. По умолчанию значение этого парамет-
     ра равно удвоенному числу подпрограмм профилируемой програм-
     мы.

*    Clock Speed  (Скорость работы часов) определяет скорость ра-
     боты таймера, отсчитывающего время профилирования (в импуль-
     сах в секунду). По умолчанию значение данного параметра рав-
     но 100 импульсам в секунду. Выбирать значение этого парамет-
     ра можно  только в  пассивном режиме,  в активном  же режиме
     этого сделать нельзя.

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

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

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

     Важное замечание: На самом деле профилировщик, вместо непос-
редственного замера  времени, затрачиваемого на выполнение каждой
"области", запоминает  число прерываний  таймера, происходящих во
время выполнения  данной "области".  После завершения работы про-
граммы профилировщик,  на основании  текущего значения  параметра
Clock Speed  (Скорость часов)  из блока диалога Profiling Options
(Параметры профилирования),  преобразует эти числа во времена вы-
полнения каждой "области".

     Параметр Accumulation (Накопление)

     Параметр   Statistics|Accumulation   (Статистика|Накопление)
включает и  отключает автоматический  сбор статистических данных,
что дает  Вам возможность (1) собирать данные для некоторого под-
множества помеченных  "областей", не убирая при этом никаких мар-
керов "областей"  и (2) вручную включать сбор статистических дан-
ных после начала выполнения Вашей программы.

     Для того,  чтобы собирать  данные для какого-то подмножества
выделенных "областей" необходимо сделать следующее:

1.   В локальном  меню окна  Areas ("Области"),  выберите команду
     Options (Параметры)  для того,  чтобы открыть  блок  диалога
     Area Options (Параметры "области").

2.   Изменение состояние  маркеров интересующих  Вас "областей" с
     Normal на Enable (Включить) (для включения сбора статистиче-
     ских данных) или на Disable (Отключить) (для отключения сбо-
     ра статистических данных).

3.   Установите параметр  Statistic|Accumulation  (Статистика|На-
     копление) в состояние Disable (Отключено).

4.   Начните выполнение  Вашей программы. Профилировщик не начнет
     собирать статистические  данные до тех пор, пока не встретит
     маркер "области",  находящийся в  состоянии  Enabled  (Вклю-
     чить).

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

1.   Установить маркеры "области".

2.   Установить параметр  Statistics|Accumulation (Статистика|На-
     копление) в состояние Disabled (Отключено).

3.   Запустите Вашу  программу из профилировщика (нажав для этого
     F9).

4.   Когда выполнение  программы дойдет до интересующего Вас мес-
     та, прервите ее выполнение.

5.   Включите сбор статистических данных (установив для этого па-
     раметр Statistics|Accumulation (Статистика|НАкопление) в со-
     стояние Enabled (Включено)).

6.   Возобновите выполнение программы (Вновь нажав клавишу F9).

     Система Turbo  Profiler тут  же начнет  сбор  статистических
данных для выделенной "области".

     В каких  случаях необходимо  отключать  сбор  статистических
     данных?

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

     Для того,  чтобы собирать данные только о конкретных вызовах
подпрограммы вызовите команду Statistics|Accumulatiion (Статисти-
ка|Накопление) для того, чтобы отключить сбор статистических дан-
ных при запуске Вашей программы. Перед самым вызовом подпрограммы
пометьте область,  включающую сбор  статистических данных.  После
возврата из подпрограммы пометьте еще одну область, в которой от-
ключается сбор  статистических данных.  Также Вы  можете пометить
"области", включающие и выключающие сбор статистических данных, в
неотносящихся друг  к другу  участках программы, в случае если Вы
хотите начать  сбор статистических данных после наступления неко-
торого конкретного события.

     Пример#1: Сбор статистических данных только для определенных
вызовов подпрограммы.

     Предположим, что  Вас  интересуют  вызовы  подпрограммы  авс
только в  том случае, когда она вызывается из подпрограммы xyz, и
совершенно безразличны все остальные ее вызовы.

=>     main()           /* обыкновенный маркер "области"*/
       {
        ...
          abc();        /* для данного вызова подпрограммы
                       статистику собирать не требуется */
        ...
          xyz();
       }
=>     xyz()           /* обыкновенный маркер "области"*/
       {
e>        abc();       /* вы хотите получить статистические
                         данные о этом операторе вызова */
d>      ...
       }
=>        abc()       /* обыкновенный маркер "области"*/
          {
            ...
          };


     Обратите внимание на маркер e>, включающий сбор статистики и
на маркер  d>, отключающий  его. Вы  должны  установить  параметр
Statistics|Accumulation   (Статистика|Накопление)   в   состояние
Disabled (Отключено)  перед запуском Вашей программы, в противном
случае профилировщик ошибочно начнет собирать статистические дан-
ные при первом же вызове авс из main.

     Пример#2: Сбор  данных, начинающийся после наступления неко-
торого события.

     Предположим, что поведение подпрограммы xyz меняется в зави-
симости от  некоторой информации глобального уровня, контролируе-
мой двумя подпрограммами bufferon  и bufferoff. Вас может интере-
совать время работы xyz только в те моменты, когда значение пере-
меной buffeglag равно 1.

=>     main()           /* обыкновенный маркер "области"*/
       {
        ...
          xyz();        /* для данного вызова подпрограммы
                       статистика собираться не будет */
        ...
          bufferon();
        ...
          xyz();       /* будет собираться статистика
                          для этого операторе вызова */

        ...
          bufferoff();
        ...
          xyz();        /* для данного вызова подпрограммы
                       статистика собираться не будет */

       }
=>     bufferon();           /* обыкновенный маркер "области"*/
       {
        ...
          bufferflag=1;
e>      }
d>     bufferoff();           /* маркер "области", отключающий
                                      сбор статистики*/
       {
        ...
          bufferflag=0;
        }
=>        xyz()       /* обыкновенный маркер "области"*/
          {
            ...
          };

     Обратите внимание  на то,  что маркеры  e>, включающий  сбор
статических данных,  и d>,  отключающий его, расположены в тексте
программы совсем не там, где происходит вызов xyz. Еще раз напом-
ним, что  Вы должны отключить сбор статистических данных в начале
работы    программы     (установив     для     этого     параметр
Statistics|Accumulation   (Статистика|Накопление)   в   состояние
Disabled (Отключено)),  в противном случае данные о первом вызове
xyz будут ошибочно присоединены к собираемой статистике.

     Команда Delete All (Удалить все)

     Команда Statistics|Delete  All (Статистика|Удалить все) уда-
ляет все статистические данные, собранные в процессе текущего се-
анса профилирования,  давая Вам возможность вновь начать собирать
эти данные.

     Delete All (Удалить все) удаляет все данные, собранные в хо-
де сеанса  профилирования и  находящиеся в  открытых окнах отчета
(Execution Profile  (Профиль  выполнения)),  Callers  (Вызывающие
подпрограммы, Interrupts  (Прерывания), Files  (Файлы) и  Overlay
(Оверлеи)), но  текущие значения  параметров профилирования в ре-
зультате выполнения этой команды не меняются.

     Команда Save (Сохранить)

     При помощи  команды  Statistics|Save  (Статистика|Сохранить)
происходит сохранение следующих данных, установок и параметров:

     всей статистики  сбор которой был включен во время получения
     текущего профиля  (времена выполнения  и количества вызовов,
     вызывающие подпрограммы, данные о работе с файлами, прерыва-
     ниями и оверлеями);

*    всей информации  о "областях"  (имена  "областей",  действия
     "областей", вызывающие  подпрограммы, раздельный или объеди-
     ненный  режим   подсчета  времени),   изображенной  в   окне
     Execution Profile (Профиль выполнения).

     Если Вы  сохранили статистику  в файле, то Вы можете в любой
момент ее  восстановить  при  помощи  команды  Statistics|Restore
(Статистика|Восстановить).

     При выборе команды Statistics|Save (Статистика|Сохранить) на
экране появляется следующий блок диалога:

     Рис.4.32 Блок диалога Save (Сохранить)

     При этом  в блоке  ввода Name  (Имя) появляется  имя файла с
расширением .TFS, задаваемое по умолчанию (имя вида <имя програм-
мы>.TFS, где <имя программы> - это имя текущей программы).

     Сохранение файлов

     Для того,  чтобы сохранить текущую статистику профилирования
в файле  с именем, задаваемым по умолчанию, необходимо просто вы-
брать ОК.

     В случае,  если Вы хотите сохранить эту статистику в файле с
каким-нибудь другим именем:

1.   Активируйте блок ввода File Name (Имя файла).

2.   Введите желаемое  имя файла  (которое в случае необходимости
     может включать в себя дисковод и путь).

3.   Выберите ОК

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

     Команда Restore (Восстановить)

     При выборе  команды Statistics|Restore (Статистика|Восстано-
вить) на экране появляется следующий блок диалога:

     Рис.4.33 Блок диалога Restore (Восстановление)

     Блок диалога  Restore (Восстановление) работает точно также,
как и  другие блоки диалога, предназначенные для загрузки файлов.
В этом блоке диалога Вы имеете возможность:

*    ввести имя  файла или  его описание  (содержащее метасимволы
     DOS(? и *)) в блок ввода File Name (Имя файла);

*    выбрать другой дисковод или директорию на дереве директорий;

*    выбрать имя файла из блока списка Files (Файлы);

*    выбрать ОК для того, чтобы завершить транзакцию (или выбрать
     Cancel (Отменить)  для того, чтобы покинуть блок диалога без
     загрузки файла);

*    выбрать Help (Помощь), чтобы открыть окно, содержащее инфор-
     мацию о правилах использования данного блока диалога.

     После того  как Вы введете или выберете имя файла с расшире-
нием.TFS и  загрузите этот  файл, Turbo  Profiler восстановит все
сохраненные в  этом файле  параметры, установки  и статистическую
информацию.

     Меню Print (Печать)

+------------+       +------------+
| Statistics |       | Статистика |
| Module...  |       | Модуль     |
|------------|       |            |
| Options... |       | Параметры  |
+------------+       +------------+

     Меню Print (Печать) системы Turbo Profiler позволяет Вам вы-
вести содержимое  любого из открытых окон в новый или уже сущест-
вующий дисковый файл или прямо на принтер.

     Команда Statistics (Статистика)

     Команда Print|Statistics  (Печать|Статистика) выводит содер-
жимое всех  открытых окон  профилировщика (кроме окна Module (Мо-
дуль)) на  печать или  в файл,  заданный в блоке диалога Printing
Options (Параметры печати).

     Перед тем как воспользоваться командой Print|Statistics (Пе-
чать|Статистика) откройте блок диалога Printing Options (Парамет-
ры печати)  и удостоверьтесь в том, что параметры печати (размеры
страницы, направление  вывода, используемый  набор символов  и, в
случае вывода в файл, имя соответствующего файла) имеют необходи-
мые Вам значения.

     В случае вывода статистических данных в уже существующий ди-
сковый файл на экране появляется меню
+-----------+        +------------+
| Append    |        | Добавить   |
| Overwrite |        | Пеpеписать |
| Cancel    |        | Отменить   |
+-----------+        +------------+

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

     Команда Module (Модуль)

     В блоке диалога Pick a Module (Выберите модуль), появляющем-
ся в  результате выполнения команды Print|Module (Печать|Модуль),
Вы можете выбрать какой-нибудь из модулей Вашей программы для вы-
вода на  принтер или  в дисковый  файл, заданный  в блоке диалога
Printing Options (Параметры печати).

     При выборе команды Module (Модуль) на экране появляется сле-
дующий блок диалога Pick a Module (Выберите модуль):

     Рис.4.34 Блок диалога Pick a Module (Выберите модуль).

     Вы можете  выбрать какой  -нибудь конкретный  модуль по  его
имени или  же выбрать  All Modules  (Все модули) для печати всего
доступного исходного  текста Вашей  программы. При  печати текста
модуля профилировщик  создает аннотированный  листинг, в  котором
каждой строке или подпрограмме, помеченной Вами в качестве "обла-
сти", сопутствуют  время ее  выполнения и  количество ее вызовов.
Вид этого листинга изображен на следующем рисунке:

     Рис.4.35 Аннотированный  листинг исходного  текста программы
PRIME1


     Команда Options (Параметры)

     При выборе  команды Options  (Параметры) из  меню Print (Пе-
чать), на  экране  появляется  следующий  блок  диалога  Printing
Options (Параметры печати)

     Рис.4.36 Блок диалога Printing Options (Параметры Печати)

*    Width (Ширина)  задает число  символов в  каждой строке  (по
     умолчанию 80);

*    Heigth (Высота)  задает число строк в странице (по умолчанию
     66);

*    Селективные кнопки Printer|File (Принтер|Файл) позволяют Вам
     выбирать между  выводом статистических данных на принтер или
     в файл. По умолчанию данные выводятся на принтер.

*    При помощи селективных кнопок Graphics|ASCII (Графика|ASCII)
     Вы можете  выбрать набор  символов используемый  при  печати
     (либо расширенный  набор символов IBM (включая символы псев-
     дографики), либо печать только символов ASCII). По умолчанию
     установлен набор символов ASCII.

*    Destination File (Файл назначения) - это имя файла, располо-
     женного на  диске, в  который осуществляется  вывод. В  этом
     имени могут быть указаны имя диска и путь.

     Меню Options (параметры)

+---------------------+       +------------------------------+
| Macros              |       | Макрос                       |
| Display options...  |       | Параметры изображения        |
| Path for source...  |       | Путь поиска исходного текста |
| Save options...     |       | Сохранить параметры          |
| Restore options...  |       | Восстановить параметры       |
+---------------------+       +------------------------------+

     При помощи меню Options (Параметры) Вы можете:

*    создать макрокоманду;

*    удалить одну или все макрокоманды;

*    установить параметры  изображения, задающие внешний вид сис-
     темы Turbo Profiler и ее работу;

*    задать директории (отличающиеся от текущей), в которых Turbo
     Profiler будет искать  исходные тексты;

*    записать в  файл конфигурации параметры окон, макросы, пара-
     метры, установленные  в других меню, и некоторые другие раз-
     нообразные параметры;

*    восстановить установки и параметры из файла конфигурации.

     Команда Macros (Макрос)

     Команда Options|Macros  (Параметр|Макрос) ведет  к появлению
на экране следующего меню:

+-----------------------+       +------------------+
| Create...       Alt = |       | Создать          |
| Stop recording  Alt - |       | Закончить запись |
| Remove                |       | Убрать           |
| Delete all            |       | Удалить все      |
+-----------------------+       +------------------+

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

     Для того, чтобы начать сеанс создания макроопределения необ-
ходимо:

1.   Выбрать команду  Оptions| Macros| Create (Параметры| Макрос|
     Создать).

     Профилировщик попросит  указать клавишу,  которую Вы  хотите
     использовать для вызова создаваемого макроса. Нажмите клави-
     шу или  комбинацию клавиш  (например Alt-M). Во время записи
     макроопределения в  верхнем правом  углу  экрана  появляется
     надпись RECORDING (запись).

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

     Для того,  чтобы закончить запись макроопределения, выберите
команду Options|  Macros| Stop  Recording (Параметры| Макрос| За-
кончить запись)  (или нажать клавишу,соответствующую создаваемому
макросу (в данном примере Alt-M)).

     Как работает запись и выполнение макроопределений.

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

     Но, с  помощью команды Options|Macros (Параметры|Макрос), Вы
можете определить  макрос, в  котором будут  записаны все нажатия
клавиш, произведенные  Вами с самого начала сеанса профилирования
и вплоть  до того  момента, когда Вы получили требуемое состояние
Вашей программы. В этот момент Вы можете прекратить запись макро-
определения. Теперь, если у Вас возникнет потребность вернуться к
этому участку программы, Вы сможете просто вызвать макрос.

     Вы не  можете использовать  команду Options|Macros (Парамет-
ры|Макрос) для  записи нажатий  клавиш, подаваемых  на вход Вашей
программе, Вы  можете запомнить  в качестве  макроса лишь команды
системы Turbo Profiler.

     Для того,  чтобы запомнить весь сеанс профилирования необхо-
димо:

1.   Запустить Turbo Profiler из DOS.

2.   Выбрать команду  Options| Macros| Create (Параметры| Макрос|
     Создать) (или  нажать Alt=) для определения указать клавишу,
     которую Вы хотите использовать для вызова определяемого мак-
     роса.

3.   Выберите какую-нибудь  клавишу, которая еще не занята какой-
     либо операцией, как например клавиша Shift-F10.

4.   Загрузите Вашу  программу. Turbo Profiler автоматически вос-
     становит разметку  "областей" на основании информации, нахо-
     дящейся в  файле с  расширением .TFA,  относящегося к  Вашей
     программе.

5.   Если Вы  хотите задать конфигурацию системы, отличающуюся от
     устанавливаемой по умолчанию, загрузите соответствующий файл
     конфигурации (при  помощи команды  Options|Restore (Парамет-
     ры|Восстановить).

6.   Запустите Вашу программу, и, если это необходимо, остановите
     ее выполнение.

7.   Закончите запись  макроса: выберите команду Options| Macros|
     Stop Recording  (Параметры| Макрос|  Закончить запись)  (или
     нажмите Alt-).

8.   Сохраните макрос  в  файле  конфигурации:  выберите  команду
     Options| Save Options (Параметры|Сохранить параметры), выбе-
     рите Macros (Макрос) в блоке диалога Save Configuration (Со-
     хранить конфигурацию),  введите имя  соответствующего  файла
     конфигурации (в том случае если оно отличается от тех, кото-
     рые перечислены  в данном  блоке диалога), затем выберите ОК
     или нажмите Enter.

9.   Продолжите выполнение Вашей программы

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

     Когда Вы записываете макрос в файл конфигурации, профилиров-
щик сохраняет  при этом всю текущую конфигурацию системы, включая
открытые и распахнутые окна. Поэтому в случае, когда Вы записыва-
ете макрос,  открывающий окно  и оставляете это окно открытым при
сохранении макроса,  в следующий раз, при восстановлении конфигу-
рации из этого файла, данное окно откроется автоматически без вы-
полнения макроса.

     Команда Create (Создать) (Alt=)

     В результате  выполнения команды Create (Создать) начинается
запоминание нажатий  на клавиши, которые будут составлять опреде-
ляемый Вами  макрос. Клавишей  активации команды Create (Создать)
является Alt=.

     Команда Sto p Recording (Остановить запись) (Alt=)

     Команда Stop  Recording (Остановить запись) прекращает запо-
минание нажатий  на клавиши,  соответствующих  создаваемому  Вами
маркросу. Эту команду необходимо использовать после вызова коман-
ды Options| Macros| Create (Параметры| Макрос| Создать). Клавишей
активации данной команды является ALt-.

     Команда Remove (Убрать)

     Команда Remove  (Убрать) удаляет макрос, соответствующий ка-
кой-нибудь клавише. Во время выполнения данной команды появляется
подсказка, содержащая  просьбу  нажать  клавишу,  соответствующую
удаляемому макросу.

     Команда Delete (Удалить)

     Команда Delete (Удалить) удаляет все макроопределения и воз-
вращает всем  клавишам  первоначальные  значения  (задаваемые  по
умолчанию).

     Display Options (Параметры изображения)

     Командой Options|Display  Options (Параметры|Параметры  изо-
бражения) открывается  блок диалога  Display  Options  (Параметры
изображения), показанный на следующем рисунке.

     Рис.4.37 Блок диалога Display Options (сcПараметры изображе-
ния)

     С помощью блока диалога Display Options (Параметры изображе-
ния) Вы можете сделать следующее:

*    указать системе Turbo Profiler следует ли ей во время выпол-
     нения Вашей  программы менять  местами экраны (пользователь-
     ский и среды профилировщика);

*    устанавливать ширину  отступа, задаваемого  символом табуля-
     ции, в окне Module (Модуль);

*    задать  количество  строк  на  экране  среды  системы  Turbo
     Profiler равным 25 или 43/50;

*    задать  количество  позиций,  отводимое  в  окнах  Execution
     Profiler (Профиль  выполнения) и  Areas ("области") для изо-
     бражения имен подпрограмм, входящих в Вашу программу.

     Параметр Display Swapping (Перестановка экранов)

     Селективная кнопка  Display Swapping  (Перестановка экранов)
предоставляет две  возможности перестановки пользовательского эк-
рана и  экрана среды  системы Turbo  Profiler: None  (Никогда)  и
Always (Всегда).

*    None (Никогда) означает, что экраны никогда не меняются мес-
     тами.

     Используйте это  значение при  получении профиля  программы,
     которая не  выводит никакой информации на экран пользователя
     User Screen).

*    Always (Всегда) означает переключение системы Turbo Profiler
     на экран пользователя при выполнении Вашей программы.

     Используйте это  значение в  том случае, если Ваша программа
выводит на экран какую-либо информацию.

     Параметр Screеn Lines (Строки экрана)

     Screen Lines  (Строки экрана) используется для задания коли-
чества строк на экране системы Turbo Profiler, которое может рав-
няться 25,  а в случае дисплейных адаптеров EGA и VGA может также
быть равно 43 или 50.

     В зависимости от типа видеоадаптера, установленного на Вашей
системе, Вам  будет доступна либо одна, либо обе кнопки. В случае
системы с  монохромным дисплеем,  либо с  Color Graphics  Adapter
(CGA) (Цветной графический адаптер), возможен только 25-ти строч-
ный режим.

     Параметр Tab Size (Размер табуляции)

     В блоке  ввода Tab  Size (Размер  табуляции) задается ширина
отступа, задаваемого символом табуляции, которая может находиться
в диапазоне от 1 до 32 позиций экрана. Вы можете сократить ширину
табуляционного отступа для того, чтобы на экране помещалась боль-
шая часть текста тех программ, в которых активно используется та-
буляция.

     Параметр Width of Names (Ширина имен)

     В блоке  ввода Width of Names (Ширина имен) задается количе-
ство позиций, отводимое в окнах Execution Profile (Профиль выпол-
нения), Callers  (Вызывающие подпрограммы)  и Areas (ОБласти) для
изображения имен подпрограмм.

     Команда Path for Source (Путь для поиска исходных текстов)

     По умолчанию,  Turbo Profiler  осуществляет  поиск  исходных
текстов в следующих директориях и в следующем порядке:

1.   В директории,  в которой  они находились при компиляции про-
     граммы.

2.   В текущей директории.

3.   В директории, содержащей профилируемую Вами программу.

     С помощью  команды Options|Path  for Source  (Параметры|Путь
поиска исходного текста), Вы можете расширить список директорий в
которых Turbo  Profiler будет искать исходные тексты перед попыт-
кой обнаружить их в текущей директории.

     Введите директории, в которых должен осуществляться этот по-
иск, в следующем формате:

     <директория>;<директория>;<директория>

     с:\Borland\TC; C:\Borland\TASM

     Команда Save Options (Сохранить параметры)

     При помощи команды Options|Save Options (Параметры|Сохранить
параметры) Вы  можете сохранить  все текущие  значения параметров
профилировщика в файле конфигурации на диске. Затем, в случае не-
обходимости опять задать такие же значения параметров профилиров-
щика,  Вы   можете  загрузить  этот  файл  конфигурации  командой
Options|Restore Options (Параметры|Восстановить параметры).

     В результате  выбора команды  Options|Save Options (Парамет-
ры|Сохранить параметры)  на экране появляется следующий блок диа-
лога Save Configuration (Сохранить конфигурацию):

     Рис.4.38 Блок диалога Save Configuration (Сохранить конфигу-
рацию)

     С помощью  этого блока  диалога Вы можете сохранить значения
параметров профилировщика,  компоновку его  окон и макроопределе-
ния. Option  (Параметры), Layout  (Компоновка) и  Macros (Макрос)
это триггерные  кнопки; Вы можете сохранять один, два или все три
перечисленных типа информации в файле конфигурации.

*    Options (Параметры) это параметры, устанавливаемые с помощью
     меню, которые  не сохраняются в файлах с расширением.TFA или
     TFS (такие,  как Options|Path for Source (Параметры|Путь по-
     иска исходного  текста), параметры  командной строки и уста-
     новки в  блоке диалога  Display Options (Параметры изображе-
     ния).

*    Layout (Компоновка)  включает в  себя следующую  информацию:
     какие из  окон открыты в текущий момент, а также их порядок,
     положение и размеры.

*    Macros (Макрос) это все макроопределения, связанные с клави-
     шами, которые имеются в настоящий момент.

*    Save To (Сохранить в) содержит имя файла конфигурации, зада-
     ваемое по  умолчанию, TFCONFIG.TF. Для того, чтобы сохранить
     конфигурацию в этом файле, выберите ОК или нажмите Enter).

     Если Вы  сохранили значения параметров в файле конфигурации,
то теперь Вы в любой момент сможете восстановить эти значения при
помощи команды Options|Restore (Параметры|Восстановить).

     Команда Restore (Восстановить)

     При помощи  команды Options|Restore (Параметры|Восстановить)
Вы можете восстановить значения параметров профилировщика, сохра-
ненные на  диске. Вы можете иметь множество различных файлов кон-
фигурации, содержащих различные макросы, компоновки окон и т.д.

     Когда Вы  выбираете команду  Options|Restore (Параметры|Вос-
становить), на экране появляется следующий блок диалога:

     Рис.4.39 Блок диалога Restore (Восстановление)

     Блок диалога  Restore (Восстановление) работает точно также,
как и  другие блоки диалога профилировщика, служащие для загрузки
файлов. Вы имеете возможность:

*    ввести имя  файла или шаблон имени файла включающий метасим-
     волы DOS) в блок ввода File name (Имя файла);

*    выбрать другой дисковод или директорию на дереве директорий;

*    выбрать имя файла из блока списка Files (Файлы);

*    выбрать ОК  для завершения  транзакции (или  выбрать  Cancel
     (Отмена) для  того, чтобы покинуть блок диалога без загрузки
     файла);

*    выбрать Help (Помощь) для того, чтобы открыть окно, содержа-
     щее информацию о правилах использования данного блока диало-
     га.

     После того, как Вы напечатаете или выберете имя файла конфи-
гурации и загрузите этот файл, Turbo Profiler восстановит в своей
среде все параметры, установки, компоновку окон и макросы, сохра-
ненные в этом файле.

     (Вы можете восстанавливать только те файлы конфигурации, ко-
торые были созданы при помощи команды Options|Save Options (Пара-
метры|Сохранить параметры)).

     Меню Window (Окно)

+------------------------+       +-----------------------------+
| Zoom                F5 |       | Распахнуть                  |
| Next                F6 |       | Следующее                   |
| Next pane          Tab |       | Следующая панель            |
| Size/move      Ctrl-F5 |       | Изменить размер/Переместить |
| Iconize/restore        |       | Заменить на условное        |
|                        |       | обозначение/Восстановить    |
| Close           Alt-F3 |       | Закрыть                     |
| Undo close      Alt-F6 |       | Отменить закрытие           |
|------------------------|       |-----------------------------|
| User screen     Alt-F5 |       | Экран пользователя          |
| 1 Module OVRDEMO       |       |                             |
| 2 Profile              |       |                             |
+------------------------+       +-----------------------------+

     Меню Window (Окно) содержит в себе команды, позволяющие:

*    манипулировать окнами системы Turbo Profiler;

*    перемещаться внутри и между окнами;

*    превращать окна в их условные обозначения и наоборот;

*    закрывать и вновь открывать окна;

*    переходить к экрану, на который осуществляет вывод Ваша про-
     грамма;

*    делать открытое окно активным.

     Команды в верхней части меню Window (Окно) предназначены для
передвижений в  оконной среде профилировщика и реорганизации окон
согласно  Вашим  потребностям.  Большинство  окон  системы  Turbo
Profiler в режим компоновки окон. В этом режиме Вы можете переме-
щать текущее окно при помощи клавиш управления курсором. Также Вы
можете расширить или сузить окно, используя для этого одновремен-
ное нажатие  клавиши Shift и клавиш управления курсором. Информа-
ция, находящаяся в строке состояния сообщает о том какие действия
осуществляются при нажатии той или иной комбинации клавиш. Клави-
шей активации этой команды является Ctrl-F5.

     Команда Zoom (Распахнуть)

     Команда Zoom  (Распахнуть) распахивает на весь экран текущее
активное окно (окно, обрамленное двойным бордюром)

     Команда Next (Следующее)

     Команда Next  (Следующее) активирует окно с номером, следую-
щим за номером текущего активного окна.

     Команда Next Pane (Следующая панель)

     В окнах  с несколькими панелями команда Next Pane (Следующая
панель) перемещает курсор на следующую панель.

     Команда Size/Move (Изменить размер/Переместить)

     Команда Size/Move  (Изменить  размер/Переместить)  переводит
профилировщик в  режим организации окон. Для перемещения окна ис-
пользуйте клавиши  управления курсором.  Для того, чтобы изменить
размер активного  окна выберите  команду Size/Move (Изменить раз-
мер/Переместить)и удерживайте  нажатой клавишу  Shift  (Регистр),
пока Вы работаете с клавишами перемещения курсора, чтобы изменить
размер окна,  а затем нажмите клавишу Enter. Для ускорения работы
нажмите комбинацию  клавиш Ctrl-F5, а затем воспользуйтесь клави-
шей Shift в сочетании с клавишами управления курсором.

     Команда  Iconize|Restore  (Заменить  на  условное  обозначе-
     ние|Восстановить)

     Команда  Iconize|Restore  (Заменить  на  условное  обозначе-
ние|Восстановить) производит  сжатие активного окна до его услов-
ного обозначения, а также разворачивает условное изображение окна
в окно. На рисунке 4.40 показаны окна и условные обозначения окон
на экране системы Turbo Profiler.

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

     Рис.4.40 Окна и их условные обозначения

     Для того,  чтобы превратить окно в его условное обозначение,
необходимо выбрать  команду Iconize|Restore (Заменить на условное
обозначение|Восстановить) из меню Window (Окно) или подвести мар-
кер мыши  к маркеру  замены на условное обозначение, находящемуся
на верхней  части рамки  окна, и  нажать кнопку.  Для того, чтобы
вновь получить  окно из  его условного обозначения опять выберите
команду Iconize|Restore (Заменить на условное обозначение|Восста-
новить) или  подведите маркер  мыши к  маркеру замены на условное
обозначение и нажмите кнопку.

     Команда Close (Закрыть)

     Команда Close  (Закрыть) временно убирает текущее окно с эк-
рана системы Turbo Profiler. Для того, чтобы опять изобразить это
окно на экране, выберите команду Undo Close (Отменить закрытие).

     Команда Undo Close (Отменить закрытие)

     Команда Undo  Close (Отменить  закрытие) открывает  то окно,
которое было закрыто самым последним и делает это окно активным.

     Для того,  чтобы перейти  к работе с одним из открытых окон,
перечисленных в  нижней части  меню Window (Окно), необходимо вы-
брать окно  из списка  (с помощью  мыши или нажав соответствующий
номер). За  более полной информацией о работе с окнами необходимо
обратиться к соответствующему разделу данного руководства.

     Команда User Screen (Экран пользователя)

     Вызов: Alt-F5

     Выберите команду  Window|User Screen (Окно|Экран пользовате-
ля) (или  нажмите Alt-F5) для того, чтобы увидеть данные, выводи-
мые Вашей программой на экран.

     Нажмите любую клавишу, чтобы вернуться в систему окон профи-
лировщика.

     Список открытых окон.

     В нижней части меню Window (Окно) находится перенумерованный
список открытых  окон. Нажмите  номер, соответствующий  одному из
этих окон для того, чтобы это окно стало активным.

     Меню Help (Помощь)

+-------------------------+       +------------------+
| Index          Shift-F1 |       | Каталог          |
| Previous topic   Alt-F1 |       | Предыдущая тема  |
| Help on help            |       | Помощь по помощи |
+-------------------------+       +------------------+


     Меню Help (Помощь) позволяет Вам с помощью специального окна
получить доступ к вспомогательной информации, подключенной к про-
филировщику. Эта вспомогательная информация покрывает практически
все аспекты среды и самой системы Turbo Profiler. (Наряду с этим,
во время  выбора Вами любой из команд, в строке состояния появля-
ются меню и подсказки).

     Для того, чтобы открыть окно Help (Помощь) необходимо выпол-
нить одно из следующих действий:

*    Нажать F1 или Alt-F1 в любое время (в том числе во время на-
     хождения в  любом из блоков диалога или при выборе любой ко-
     манды меню).

*    выбрать Help  (Помощь), при помощи мыши, на строке состояния
     или в блоке диалога.

     Для того, чтобы закрыть окно Help (Помощь), нажмите Esc, ак-
тивируйте при  помощи мыши  маркер закрытия  или выберите команду
Window|Close (Окно|Закрыть).

     Экраны помощи  часто содержат ключевые слова текст, выделен-
ный яркостью  и цветом.  Вы также  можете выбрать для того, чтобы
получить о  них более  обширную информацию. При помощи клавиш уп-
равления курсором  переместитесь к любому из ключевых слов, затем
нажмите Enter для того, чтобы получить более подробные сведения о
выбранном слове.  Вы можете  воспользоваться клавишами Home и End
для того,  чтобы переместиться соответственно на первое и послед-
нее ключевое слово, находящееся на экране. С помощью мыши Вы так-
же можете  активировать любое  из ключевых слов для получения его
описания.

     Команда Index (Каталог)

     Вызов: Shift-F1

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

     Вы можете передвигаться по этому списку. Когда Вы обнаружите
интересующее Вас  ключевое слово,  выберите его при помощи клавиш
управления курсором  и нажмите Enter. (Также Вы можете подвести к
этому слову маркер мыши и два раза нажать ее кнопку).

     Команда Previous Topic (Предыдущая тема)

     Вызов: Alt-F1

     Команда Help|Previous  Topic (Помощь|Предыдущая тема) откры-
вает окно  Help (Помощь) показывает в этом окне последний из про-
смотренных текстов.

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

     Команда Help on Help (Помощь по помощи)

     Команда Help|Help  on Help (Помощь|Помощь по помощи) изобра-
жает на экране текст, в котором объясняется как пользоваться сис-
темой помощи профилировщика.














Яндекс цитирования