|
Часть 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
|