Приложение D. Виртуальное профилирование на процессоре 80386

Программа Turbo Profiler позволяет вам полностью воспользоваться возможностями системы, которая оснащена процессором 80386. Виртуальное профилирование позволяет программе, которую вы профилируете, полностью использовать адресное пространство, расположенное ниже 640 Кбайт точно так же, как если бы Профилировщик не был бы загружен. (Turbo Profiler загружается в расширенную (extended) память, в адреса свыше 1 Мбайта).

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

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


Оборудование, необходимое для виртуального профилирования


Для того, чтобы использовать виртуальный профилировщик, вам необходимо обладать компьютером с процессором 80386 или 80486. Кроме того, ваша машина должна обладать по меньшей мере 700 Кбайт доступной расширенной памяти. Если вы использовали расширенную память для электронных дисков, кэш-буферов и тому подобного, то, возможно, вы захотите создать специальный файл CONFIG.SYS или AUTOEXEC.BAT, который удаляет некоторые из этих программ в период использования виртуального профилировщика.


Инсталляция драйвера устройства для виртуального профилировщика


Перед запуском виртуального профилировщика вы должны убедиться в том, что в своем конфигурационном файле CONFIG.SYS вы задали его драйвер устройства TDH386 (Файл TDH386 включен в пакет Turbo Debugger.) Это можно осуществить путем включения в файл CONFIG.SYS строки, подобной следующей:


DEVICE = TDH386.SYS


Если вы поместили драйвер устройства в какую-либо директорию, отличную от корневой директории, то проверьте, включили ли вы маршрут этой директории в качестве составной части имени файла драйвера устройства.

Обычно виртуальный профилировщик позволяет вам оставлять до 256 байт для строк среды DOS. Если этого объема окажется недостаточно, или если это количество представляется вам излишним и вы хотите сберечь максимально возможный объем памяти, то в файле CONFIG.SYS следует воспользоваться параметром — e, который задает число байтов среды. Например,


DEVICE = TDH386.SYS — e2000


резервирует под переменные среды DOS 2000 байтов.


Запуск виртуального профилировщика


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


TF386 [<параметры>] <программа> [<параметры программы>]


Другими словами, вместо TPROF вы просто вводите имя TF386. Затем система TF386 осуществляет поиск выполняемой программы Turbo Profiler и загрузку ее в расширенную память.


Если у вас имеются другие программы или драйверы устройств, которые используют расширенную память, например, электронные диски, кэш-буферы или что-либо еще, то вы должны указать программе TF386, какой объем расширенной памяти должен быть зарезервирован для этих других программ. Это можно осуществить с помощью параметра — e командной строки. После параметра — e должно располагаться число килобайт (К) расширенной памяти, которая используется другими программами. Например,


TF386 —e512 myprog


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

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

TF386, вместе с параметром — e необходимо задать параметр — w.


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

Если работа происходит под управлением DOS версии 2.хх, то вы должны будете задать полное маршрутное имя директории и имя файла выполняемой программы TF386.


Далее приводится полный перечень параметров командной строки для запуска файла TF386.EXE:


— ? — Получение подсказки по использованию программы TF386.


— e<####> — Задает число килобайтов расширенной памяти, которое используется другими программами или той программой, которую вы профилируете. (Если ваша система поддерживает стандарт XMS, то задавать этот параметр не нужно.)


— f<####> — Делает возможной эмуляцию EMS (отображаемой памяти) посредством разбиения на страницы (в расширенной памяти) и устанавливает сегмент страничного кадра равным <####> (в шестнадцатеричном формате). Последние три цифры должны быть нулями (000) (например, C000 или E000). Заметьте, что данный параметр относится только к вызовам EMS в Turbo Profiler. Если при загрузке программы TF386 вы не используете этот параметр, то TF386 не сможет воспользоваться EMS.


— f— Запрещает эмуляцию EMS (вероятно, для переопределения заданного ранее параметра командной строки).


— w — Модифицирует файл TF386.EXE, занося в него новые стандартные значения параметров — e или — f. Вы можете ввести имя нового выполняемого файла, который еще не существует, и TF386 создаст новый выполняемый файл (Примечание переводчика: данное утверждение противоречит тому, которое было высказано пятью абзацами ранее. Там утверждалось, что задаваемое имя должно представлять точную и уже существующую копию файла TF386, которая была создана программистом ранее.)


Заметьте, что параметры файла TF386.EXE должны появляться в командной строке первыми; они должны располагаться до параметров программы Turbo Profiler или до имени профилируемой программы.

Например, строка


TF386 —e1024 —fD000 —w


резервирует 1024 Кбайт расширенной памяти, делает возможной эмуляцию EMS с кадром страницы, равным D000, и модифицирует файл ТF386.EXE, записывая в него новые значения. Для того, чтобы отобразить на экране весь перечень параметров командной строки, которые могут задаваться для программы TF386.EXE, необходимо ввести строку TF386 —? или TF386 —h и нажать клавишу Enter.


Важное замечание: Если у вас имеется машина на базе процессора 80386 и вы хотите прочесть параметры командной строки для файла TF386.EXE, необходимо, чтобы был загружен драйвер TF386.SYS.


Различия между обычной и виртуальной профилировкой


Большая часть операций работает абсолютно одинаково независимо от типа проводимой профилировки: обычной или виртуальной на процессоре 80386. Отличается выполнение следующих команд:


* При использовании команды File| DOS Shell (Файл| Оболочка DOS) для выполнения команды DOS профилируемая программа никогда не откачивается на диск. Это означает, что у вас не всегда может оказаться достаточно памяти для того, чтобы запустить другую программу по запросу DOS.


* Ваша программа может использовать почти все команды процессора 80386 за исключением привилегированных команд защищенного режима адресации: CLTS (стирание флага переключенной задачи), LMSW (загрузка слова состояния машины), LTR (загрузка регистра задачи), LGDT (загрузка регистра глобальной таблицы регистров), LIDT (загрузка регистра таблицы дескрипторов прерываний), LLDT (загрузка регистра локальной таблицы дескрипторов).


* Несмотря на то, что вы можете использовать в период проведения виртуального профилирования все расширенные режимы адресации процессора 80386 и 32-битовые регистры, вы не можете обращаться к адресам памяти свыше 1 Мбайта. При попытке такой адресации, будет генерироваться прерывание по исключительной ситуации, и Turbo Profiler вновь вернет себе управление.


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


* среда работы DesqView;


* среда работы Microsoft Windows-386;


* драйвер QEMM.SYS, эмулятор памяти EMS фирмы QuarterDeck;


* драйвер CEMM.SYS, эмулятор памяти EMS фирмы Compaq;


* 386^MAX.


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


Сообщения об ошибках программы TF386


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


TF386 error: 80386 device driver missing or wrong version

(Ошибка программы TF386: драйвер устройства процессора 80386 не установлен или установлена неверная версия)

Перед тем, как вызвать в командной строке DOS программу TF386, в файле CONFIG.SYS необходимо задать драйвер устройства TFH286.SYS.


TF386 error: Can't enable the A20 address line

(Ошибка программы TF386: Невозможна активизация адресной шины A20)

Программа TF386 не может реализовать обращение к памяти свыше 1 Мбайта. Это сообщение может возникать в случае, если вы работаете на системе, которая не является полностью IBM-совместимой.


TF386 error: Can't find TPROF.EXE

(Ошибка программы TF386: Не обнаружен файл TPROF.EXE)

Программа TF386 не смогла обнаружить файл TPROF.EXE.


TF386 error: Couldn't execute TPROF.EXE

(Ошибка программы TF386: Невозможен запуск файла TPROF.EXE)

Программа TF386 не смогла запустить файл TPROF.EXE.


TF386 error: Environment too long; use — e<####> switch with TFH386.SYS

(Ошибка программы TF386: Слишком велик объем среды; воспользуйтесь параметром — e<####>, который задается драйверу TFH386.SYS)

Вам необходимо изменить значение параметра — e способом, который был описан в тексте ранее.


TF386 error: Not enough Extended Memory available

(Ошибка программы TF386: Доступной расширенной памяти недостаточно)

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


TF386 error: Wrong CPU type (not an 80386)

(Ошибка программы TF386: Неверный тип центрального процессора (он не является процессором 80386))

Работа происходит на машине, не обладающей процессором 80386 или 80486.


Если вы пытаетесь модифицировать TF386 с помощью параметра — w, то возможно возникновение следующих сообщений об ошибках:


TF386 error: Cannot open program file

(Ошибка программы TF386: Открытие файла программы невозможно)


TF386 error: Cannot read program file

(Ошибка программы TF386: Чтение файла программы невозможно)


TF386 error: Cannot write program file

(Ошибка программы TF386: Запись в файл программы невозможна)


TF386 error: Program file corrupted or wrong version

(Ошибка программы TF386: Файл программы поврежден или используется неверная версия)


Сообщения об ошибках драйвера TDH386.SYS


Существует только два сообщения об ошибках, которые связаны с драйвером TDH386.SYS:


Wrong CPU type: TDH386 driver not installed

(Неверный тип центрального процессора: драйвер TDH386 не установлен)


Invalid command line: TDH386 driver not installed

(Неверная командная строка: драйвер TDH386 не установлен)







 


Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Другие сайты | Наверх