|
||||
|
Глава 4. Среда системы Turbo ProfilerЧасть 1. Компоненты средыСистема Turbo Profiler максимально упрощает процесс профилирования и увеличивает его эффективность. Когда Вы запускаете программу Turbo Profiler, то все средства, необходимые Вам для получения профилей Ваших программ, оказывается у Вас под рукой. Весь этот комплекс возможностей заключен в Среде системы Turbo Profiler. Кроме того, среда системы Turbo Profiler предоставляет следующие дополнительные возможности, которые еще больше упрощают процесс профилирования программ: * возможность присутствия на экране монитора значительного числа окон, которые можно перемещать по экрану и размеры которых можно изменять; * наличие поддержки «мыши», совместимой с Microsoft mouse версии 6.1; * наличие блоков диалога, заменяющих многоуровневые меню. Среда системы Turbo Profiler насчитывает в себе три визуальных компоненты: строку меню у верхнего края экрана, оконную область в средней части экрана и строку состояния у нижнего края экрана. В результате выбора многих элементов меню на экран будут выдаваться блоки диалога. Перед тем, как подробно описать каждый элемент меню интегрированной среды, мы опишем более обобщенно эти типовые компоненты. Строка меню и меню. В системе Turbo Profiler, помимо глобальных, имеются также локальные меню. К глобальным меню доступ осуществляется посредством строки меню, а локальные меню вызываются из различных окон системы. Строка меню представляет собой основное средство доступа ко всем командам меню. В дополнение к этому в данной стоке изображается индикатор состояния программы, с помощью которого можно, например, определить, что профилировщик в данный момент готов к выполнению Ваших команд (READY), выполняет Вашу программу (RUNNING) или ждет когда закончится выполнение текущей команды (WAIT). Строка меню оказывается невидимой лишь в том случае, когда Вы просматриваете информацию, посылаемую Вашей программой на экран пользователя (user screen). Выбор команд меню при помощи клавиатуры. Далее описывается, как можно выбирать команды глобального меню, пользуясь лишь клавиатурой: 1. Нажмите клавишу F10. В результате строка меню становится активной. Это означает, что дальнейшие нажатия клавиш будут относиться именно к строке меню, а не к другому компоненту Среды. Когда строка меню оказывается активной, Вы видите, что какой-либо заголовок меню выделен световым маркером. Заголовок меню, который выделен световым маркером, представляет собой выбранный в текущий момент элемент меню. 2. Для выбора того меню, которое Вы хотите отобразить, необходимо воспользоваться клавишами управления курсором. После этого необходимо нажать клавишу Enter. Важное замечание: Для отмены некоторого действия следует нажать клавишу Esc. Возможно ускорение этого действия. Достаточно лишь нажать первую букву соответствующей команды меню (букву активации). (Например, находясь в строке меню можно нажать клавишу F, чтобы быстро перейти к меню Files (Файлы).) Если Вы находитесь в произвольном месте системы, то для отображения необходимого Вам меню необходимо нажать клавишу Alt в комбинации с буквой активации данного меню. Если за командой меню следует многоточие (…), то в результате выбора данной команды производится отображение блока диалога. Если за командой следует символ треугольника, обращенного острием вправо, то выбор данной команды приводит к появлению другого меню. 3. Для выбора необходимой Вам команды вновь необходимо воспользоваться клавишами управления курсором. После этого необходимо нажать клавишу Enter. Ускорение действия возможно и в этом случае. После того, как меню отображено на экране, достаточно лишь нажать выделенную другим цветом букву (букву активации) команды, чтобы выбрать ее. После этого система Turbo Profiler либо выполняет выбранную команду, либо отображает блок диалога, либо отображает другое меню. В дополнение к глобальным меню, доступ к которым осуществляется посредством строки меню, каждое из окон системы Turbo Profiler имеет одно или несколько своих собственных меню. Если Вы находитесь в каком-нибудь из окон системы, то нажав комбинацию клавиш Alt-F10, Вы можете отобразить локальное меню данного окна. После появления на экране локального меню, для выбора необходимой Вам команды можно воспользоваться клавишами управления курсором, затем следует нажать клавишу Enter. Как только Вы выбрали какую-либо команду локального меню, система Turbo Profiler либо выполняет выбранную команду, либо отображает блок диалога, либо отображает другое меню. Для того, чтобы напрямую обратиться к какой-либо команде локального меню (без предварительного вызова самого меню), необходимо воспользоваться комбинацией клавиш вида Alt-<буква>, где <буква> — это буква соответствующей команды меню, выделенная световым маркером. Мышь. Для выбора команд глобальных меню можно также пользоваться мышью. Последовательность действий должна быть следующей: 1. Установите маркер мыши на требуемый заголовок меню и нажмите кнопку мыши, чтобы отобразить это меню. 2. Установите маркер мыши на требуемую команду и нажмите кнопку мыши, чтобы выбрать эту команду. Вы можете также отбуксировать маркер мыши от заголовка меню вниз непосредственно до команды меню. Когда маркер мыши достигнет той команды, которую Вы хотите выбрать, отпустите кнопку мыши. (Если Вы измените свои намерения, то необходимо лишь отбуксировать маркер мыши вовне меню; при этом никакая команда не будет выбрана.) Для того, чтобы выбрать какую-нибудь команду локального меню активного окна профилировщика: 1. Нажмите правую кнопку мыши для того, чтобы отобразить это локальное меню. 2. Установите маркер мыши на требуемую команду и нажмите кнопку мыши, чтобы выбрать эту команду. Средства оперативного доступа. Система Turbo Profiler предоставляет ряд средств, которые позволяют осуществлять оперативный выбор команд меню. Например, те пользователи, у которых в распоряжении имеется мышь, могут превращать состоящий из двух шагов способ доступа в одношаговый путем буксировки маркера мыши от заголовка меню вниз непосредственно до команды меню с отпусканием кнопки мыши после того, как будет выбрана соответствующая команда. При работе с клавиатурой для обращения к строке меню и выбора команд Вы можете воспользоваться рядом сочетаний клавиш (которые называются клавишами активации). Далее приводится перечень доступных в работе клавиш активации. Это надо сделать — Чтобы получить вот что… Нажмите клавишу Ctrl в совокупности с выделенной буквой команды локального меню — Выполнить команду локального меню. Нажмите клавишу Alt в совокупности с выделенной буквой команды меню — Отобразить меню из строки меню. Нажмите выделенную букву какой — либо компоненты блока диалога — Выбрать эту компоненту блока диалога. Нажмите клавишу активации, указанную сразу после команды меню — Выполнить команду меню. Окна системы Turbo Profiler. Большая часть того, что Вы видите и делаете в среде системы Turbo Profiler, происходит в окне. Окно представляет собой область экрана, которую можно перемещать, у которой можно изменять размеры, которую можно распахивать на весь экран, ориентировать встык с другими окнами (чтобы не происходило перекрытий), перекрывать с другими окнами, закрывать и открывать. В системе Turbo Profiler может существовать произвольное число окон (в пределах имеющейся памяти), но в каждый момент времени активным может быть только одно окно. Активным окном является то окно, в котором Вы в настоящий момент работаете. Любые выбираемые Вами команды или вводимый Вами текст как правило относится только к активному окну. Система Turbo Profiler позволяет без затруднений определить, какое именно окно является активным. Это достигается при помощи двойных линий бордюра, в которые заключается активное окно. Активное окно всегда содержит маркер закрытия окна. Если Ваши окна перекрываются, то активное окно всегда будет находиться поверх других окон (всегда располагается на переднем плане). Существует несколько типов окон, но большая их часть имеет следующие общие элементы: * строку заголовка; * маркер закрытия окна; * две полосы прокрутки; * угол изменения размера окна; * маркер распахивания окна на весь экран; * маркер преобразования окна в его условное обозначение; * номер окна (от 1 до 9). Типовое окно системы Turbo Profiler выглядит следующим образом: Рис. 4.1 Типовое окно. Управление окнами. Некоторые из окон системы Turbo Profiler разделены на две или более панелей, служащих для отображения различной информации. Как правило каждая из панелей имеет отдельное локальное меню. В таблице 4.1 представлена краткая сводка по методам работы с окнами в системе Turbo Profiler. Вы можете выполнять перечисленные действия при помощи клавиатуры или мыши. Таблица 4.1 Методы работы с окнами. Чтобы осуществить это…………………………………………. Воспользуйтесь этими методами Открыть окно…………………………………………………….. Выберите View (Просмотреть) для того, чтобы открыть закрытое окно профилировщика Закрыть окно………………………………………………………Выберите команду Close (Закрыть) из меню Window (Окно) (или нажмите Alt-F3), либо подведите указатель мыши к маркеру закрытия окна и нажмите кнопку мыши. Сделать окно активным……………………………………….. Установите указатель мыши в какое-либо место окна и нажмите кнопку мыши или; Нажмите клавишу Alt в совокупности с номером окна (от 1 до 9, номер окна указывается на верхней границе окна) или; Выберите команду Window (Окно) и выберите окно из списка, находящегося в нижней части меню; Выберите команду Window| Next (Окно| Следующее) или нажмите клавишу F6, чтобы сделать активным следующее окно (в том порядке, в котором они открывались). Просмотреть содержимое окна………………………………….Используйте клавиши управления курсором для перемещения по окну (вправо-влево и вверх-вниз); Применяйте мышь для работы с полосами прокрутки: * Для прокрутки на одну строку или на один символ необходимо подвести указатель мыши к символу стрелки, направленной в необходимую сторону и находящейся на одном из концов полосы прокрутки, и нажать кнопку мыши. * Для однократной прокрутки на страницу в любую из сторон необходимо подвести указатель мыши к заполненной фактурой области по одну из сторон лифта и нажать кнопку мыши. * Наконец, Вы можете отбуксировать лифт на любое место полосы прокрутки для того, чтобы оперативно переместиться к тому месту в файле, относительная позиция которого от начала файла соответствует положению лифта на полосе прокрутки. Переместить открытое окно………………………………….Отбуксируйте строку заголовка или любой из символов бордюра. Нажмите клавишу 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… | | Переход | |-| | | | Add areas | | Добавить «области» | | Remove areas | | Удалить «области» | | Operation… | | Режим работы | | Callers… | | Вызывающие подпрограммы | |-| | | | 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 (Переход) Вызов: 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 Routines (Все подпрограммы) приводит к пометке маркерами "области" всех подпрограмм Вашей программы, включая подпрограммы, исходный текст которых недоступен (такие, например, как библиотечные подпрограммы, представляющие из себя объектные модули, находящиеся в библиотечных файлах) * Команда 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 (Подсчет времени). Этим параметром определяется будет ли прибавляться время выполнения данной "области" ко временам выполнения "областей" более высокого уровня. Separate (Отдельный). При подсчете времени, задаваемом этим значением параметра Timing (Подсчет времени) каждый импульс таймера увеличивает только время выполнения данной "области" и никак не влияет на время выполнения "области" из которой была вызвана данная. Combined (Объединенный). В этом случае каждый импульс таймера приводит к увеличению подсчитываемого времени выполнения как для данной "области", так и для вызвавшей ее. В окне Areas ("Области") отображается режим работы профилировщика и тип подсчета времени для каждой "области". Команда Callers (Вызывающие подпрограммы) Вызов: Ctrl-C. Команда Callers (Вызывающие подпрограммы) ведет к появлению на экране блока диалога Stack Trace (Трассировка стека). Рис. 4.10 Блок диалога Stack Trace (трассировка стека). В этом блоке диалога Вы можете задать значения двух параметров: Areas ("Области") и Stack (Стек). * Areas ("Области") задает "области" для которых необходимо запоминание путей вызова. This Routine (Данная подпрограмма). Это значение приводит к запоминанию информации о путях вызова для текущей подпрограммы (т. е. подпрограммы на которой в данный момент установлен курсор в окне Module (Модуль)). This Module (Данный модуль). Это значение влечет за собой сохранение информации о путях вызова для всех помеченных подпрограмм текущего модуля (т. е. модуля, находящегося в данный момент в окне Module (Модуль)). All Routines (Все подпрограммы). В результате задания этого значения рассматриваемого параметра запоминается информация о путях вызова для всех подпрограмм во всех модулях, составляющих программу. * Stack (Стек) задает глубину стека вызовов. All Callers (Все вызывающие подпрограммы). Это значение параметра приводит к запоминанию всей доступной информации о стеке вызовов, для подпрограмм, заданных параметром Areas ("Области"). Immediate Callers (Подпрограммы, вызывающие непосредственно). Это значение параметра ведет к запоминанию информации только о том, какие подпрограммы непосредственно вызывают подпрограммы, заданные параметром Areas ("Области"). None (Никакие). Это значение параметра блокирует сбор информации о стеках вызова для подпрограмм, заданных параметром Areas ("Области"). Команда Module (Модуль) Вызов: Alt-M. Команда Module (Модуль) локального меню ведет к появлению на экране блока диалога Pick а Module (Выбор модуля), в котором перечисляются все модули Вашей программы, для которых доступен исходный текст. Рис. 4.11 Блок диалога Pick a Module (Выбор модуля). Исходный текст большинства модулей содержится в единственном файле, другие же файлы, относящиеся к данному модулю (такие как, например, файлы заголовков в С) содержат лишь определения констант и структур данных. Этой командой необходимо пользоваться для загрузки какого — либо модуля в окно Module (Модуль). При помощи этой команды можно получить на экране изображение любого модуля, для которого существует файл с исходным текстом, если конечно этот модуль входит в состав программы, профилируемой в данный момент. Эта команда позволяет Вам переходить от модуля к модулю без необходимости непосредственного поиска директории, в которой находятся исходные тексты Вашей программы. При выполнении команды Module (Модуль) файлы с исходными текстами ищутся в следующих директориях в перечисленном порядке: 1. в директории, в которой программа была скомпилирована; 2. в директориях, заданных при помощи команды Options|Path Source (Параметры|Путь доступа к исходным текстам) (если такие имеются); 3. в директории, содержащей профилируемую программу; 4. в текущей директории. Команда File (Файл) Вызов: Ctrl-F. Вызов команды File (Файл), находящийся в локальном меню приводит к появлению на экране блока диалога в котором перечислены все файлы с исходными текстами, в результате компиляции которых был получен текущий модуль. Эту команду следует использовать в случае, когда исходный текст Вашего модуля расположен в нескольких файлах и требующийся Вам файл не изображен в данный момент в окне 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 изображает статистические данные, собранные при получении профиля Вашей программы (они появляются после того, как Вы зададите в Вашей программе "области" и выполните ее под контролем профилировщика). Рис. 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| Current (Фильтр| Текущая), отфильтровали статистические данные, находящиеся в окне Execution Profile (Профиль выполнения), воспользуйтесь командой Filter| All (Фильтр| Вся) для того, чтобы восстановить на экране изображение всей статистики, полученной в ходе сеанса профилирования. * Команда 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(Модуль), то в случае недоступности исходного текста, соответствующего выделенной строке, профилировщик находит соответствующую строку кода в окне Disassembly (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 (Вызывающие подпрограммы), в котором показаны пути вызова для программы CALL TEST. Примечание: В окне 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 (Вызывающие подпрограммы), изображаемом после выполнения программы CALL TEST, подпрограмма с выделена световым маркером. /* Program CALL TEST */ /* Copyright (c) 1990, Borland International */ #include <stdio.h> 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 (В порядке вызова) — сортировка путей вызова в том порядке, в котором по этим путям передавалось управление программы в процессе ее выполнения. * Frequency (По частоте) — сортировка путей вызова в зависимости от того, насколько часто управление программы проходило по этим путям, в порядке убывания этой частоты. Окно Overlays (Оверлеи) В окне Overlays (Оверлеи) системы Turbo Profiler отображается информация об использовании оверлеев программ, созданных при помощи систем Turbo Pascal, Turbo C и Turbo Assembler. Для того, чтобы профилировщик начал выбирать информацию об использовании оверлеев необходимо установить элемент меню Statistics|Overlays (Статистика|Оверлеи) в состояние Enabled (Включен). Рис. 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 (Прерывания) разделено на три панели: верхнюю левую, верхнюю правую и нижнюю. * На верхней левой панели изображаются прерывания, вызванные Вашей программой в ходе сеанса профилирования (показаны номера прерываний и их названия). * На верхней правой панели изображаются данные о типе показываемой информации и о текущем прерывании (прерывании, выделенном в данный момент на верхней левой панели), число вызовов этого прерывания и время его обработки. Вы не можете перейти на верхнюю правую панель, так как она предназначена исключительно для изображения информации. * На нижней панели изображаются данные для каждого прерывания, полученные в ходе сеанса профилирования, в виде гистограммы или в виде начального времени и продолжительности. Обе активные панели окна Interrupts (Прерывания) имеют локальные меню. Рис. 4.20 Локальные меню окна Interrupts (Прерывания). Для того, чтобы вызвать локальное меню текущей панели, нажмите Alt-F10. Для перехода с одной панели на другую пользуйтесь клавишей Тав. Для непосредственного вызова какой-либо команды меню (без вызова самого меню), нажмите комбинацию клавиш Ctrl-<буква>, где <буква> — это буква, выделенная в названии соответствующей команды. Каждый из элементов нижней панели может включать в себя следующие данные: * название прерывания и его номер (или и то и другое вместе); * количество вызовов данного прерывания (в абсолютном виде и в относительном, выраженном в процентах); * общее количество времени, занятое данным прерыванием (в абсолютном виде и в относительном, выраженном в процентах). Команда Collection (Сбор) (на верхней панели) Вызов: Ctrl-C. Команда Collection (Сбор) блокирует или разблокирует сбор статистических данных для текущего прерывания (того прерывания, которое в данный момент выделено в левой области вывода верхней панели). Команда Subrountines (Подпрограммы) (на верхней панели) Вызов: Ctrl-S. Команда Subrountines (Подпрограммы) блокирует или разблокирует сбор статистических данных для подпрограмм текущего прерывания (эта команда особенно полезна в случае вызовов прерывания DOS INT ASH). Адреса подпрограммы определяются по значению, содержащемуся в регистре АН в момент вызова прерывания. Команда 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 (Подсчет времени). Этим параметром определяется будет ли прибавляться время выполнения данной "области" ко временам выполнения "областей" более высокого уровня. Separate (Отдельный). При подсчете времени, задаваемом этим значением параметра Timing (Подсчет времени) каждый импульс таймера увеличивает только время выполнения данной "области" и никак не влияет на время выполнения "области" из которой была вызвана данная. Combined (Объединенный). В этом случае каждый импульс таймера приводит к увеличению подсчитываемого времени выполнения как для данной "области", так и для вызвавшей ее. * Callers (Вызывающие подпрограммы). Данный параметр определяет степень подробности информации о путях вызова, запоминаемой профилировщиком для текущей "области". All Callers (Все вызывающие подпрограммы). Это значение параметра приводит к запоминанию всей доступной информации о путях вызовов, для подпрограмм, заданных параметром Areas ("Области"). Immediate Callers (Подпрограммы, вызывающие непосредственно). Это значение параметра ведет к запоминанию информации только о том, какие подпрограммы непосредственно вызывают текущую подпрограмму. None (Никакие). Это значение параметра блокирует сбор информации о стеках вызова для текущей подпрограммы. Следующий рисунок иллюстрирует процесс подсчета времени в случае, когда параметр Timing (Подсчет времени), соответствующий вызывающей подпрограмме имеет значение Combined (Совместный). Рис. 4.26 Подсчет времени. На этом рисунке для подпрограммы в установлен совместный режим подсчета времени. Подпрограмма в вызывает подпрограмму с1, следовательно время выполнения с1 будет прибавлено ко времени выполнения в. Часть времени выполнения с1 на самом деле тратится на выполнение подпрограммы d1, так как для подпрограммы с1 также установлен совместный режим подсчета времени. Как из подпрограммы в, так и из подпрограммы в2 происходит обращение к подпрограмме с2. * В случае, когда подпрограмма с2 вызывается из подпрограммы в, время выполнения с2, включающее в себя время выполнения d2, входит во время выполнения в, поскольку для этой подпрограммы установлен совместный режим подсчета времени. * В случае же вызова подпрограммы с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. Если, находясь на панели Global 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. После этого, когда бы Вы не захотели изучить эти данные, Вы можете загрузить этот файл в профилировщик, восстановив при этом все статистические данные без повторного профилирования. Эта возможность профилировщика особенно полезна в случае, когда профилирование или выполнение Вашей программы требует большого количества времени. В Вы можете сохранить множество вариантов профиля Вашей программы, полученных при различных значениях параметров профилирования, и в дальнейшем просто восстанавливать из файлов эти данные для их быстрого сравнения. Также Вы можете написать макрос для автоматического получения пяти профилей Вашей программы с различными значениями параметров или различными заданиями "областей", с сохранением результатов в пяти различных файлах с расширением. 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|Accumulation (Статистика|Накопление) для того, чтобы отключить сбор статистических данных при запуске Вашей программы. Перед самым вызовом подпрограммы пометьте область, включающую сбор статистических данных. После возврата из подпрограммы пометьте еще одну область, в которой отключается сбор статистических данных. Также Вы можете пометить "области", включающие и выключающие сбор статистических данных, в не относящихся друг к другу участках программы, в случае если Вы хотите начать сбор статистических данных после наступления некоторого конкретного события. Пример#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 | | Переписать | | 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); * Height (Высота) задает число строк в странице (по умолчанию 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=. Команда Stop Recording (Остановить запись) (Alt=) Команда Stop Recording (Остановить запись) прекращает запоминание нажатий на клавиши, соответствующих создаваемому Вами макросу. Эту команду необходимо использовать после вызова команды Options| Macros| Create (Параметры| Макрос| Создать). Клавишей активации данной команды является Alt-. Команда Remove (Убрать) Команда Remove (Убрать) удаляет макрос, соответствующий какой-нибудь клавише. Во время выполнения данной команды появляется подсказка, содержащая просьбу нажать клавишу, соответствующую удаляемому макросу. Команда Delete (Удалить) Команда Delete (Удалить) удаляет все макроопределения и возвращает всем клавишам первоначальные значения (задаваемые по умолчанию). Display Options (Параметры изображения) Командой Options|Display Options (Параметры|Параметры изображения) открывается блок диалога Display Options (Параметры изображения), показанный на следующем рисунке. Рис. 4.37 Блок диалога Display Options (Параметры изображения). С помощью блока диалога 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 (Помощь|Помощь по помощи) изображает на экране текст, в котором объясняется как пользоваться системой помощи профилировщика. |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Другие сайты | Наверх |
||||
|