Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных» (1075664), страница 11
Текст из файла (страница 11)
1.2.7.1.1.1. Окно дизассемблированного кода
Окно дизассемблированного кода отображает машинный код программы, дизассемблированные из машинных кодов инструкции ассемблера и адреса памяти каждой машинной команды. Горизонтальная зеленая стрелка слева от адреса указывает текущую точку выполнения.
Если щелкнуть мышью в области дизассемблированного кода, то в левом верхнем углу окна отображается (если это возможно) адрес местоположения данной инструкции в памяти и ее текущее значение.
Область дизассемблированного кода имеет свое контекстное меню, имеющее следующие команды:
• Enabled - делает доступным пункт Toggle.
• Breakpoint Properties - вызывает окно Address Breakpoint Properties или Source Breakpoint Properties для задания свойств точек контрольного останова.
• Run to Current - запускает программу на выполнения до точки, где находится выделенная инструкция.
• Toggle Breakpoint - устанавливает или удаляет точку останова.
• Go to Address - выводит на экран инструкции программы, находящиеся по указанному адресу.
• Go to Current EIP - обеспечивает возврат в текущую точку выполнения программы.
• Follow - позиционирует курсор области дизассемблированного кода на инструкции программы, которой будет передано управление в результате выполнения текущей инструкции.
• Caller - позиционирует курсор области дизассемблированного кода на инструкции программы, которая вызвала данную процедуру.
• Previous - возвращает курсор на прежнее место после вызова команды Follow.
• Search - выполняет поиск заданной последовательности байтов.
• View Source - если возможно, то показфывает строку в исхлдном тексте модуля.
• Mixed - отображает/скрывает строки исходного кода.
• Change Thread - вызывает окно Select Thread, в котором можно выбрать программу для отладки.
• New EIP - изменяет значение регистра EIP - положение указателя инструкции. Позволяет перейти в новую точку программы без выполнения инструкций.
1.2.7.1.1.2. Окно представления области памяти
Окно отображает в шестнадцатеричном формате все значения, содержащиеся в адресном пространстве программы, т.е. содержимое памяти текущего выполняемого модуля.
Данные в окне представлены в трех колонках: адрес памяти, значение по данному адресу и его ASCII-представление.
Текущий указатель можно перемещать вперед или назад используя соответственно клавиши Ctrl+ или Ctrl+ .
Окно имеет контекстное меню:
• Go to Address - перемещает текущий указатель к указанному адресу.
• Change Thread - вызывает окно Select Thread, в котором можно выбрать программу для отладки.
• Search - выполняет поиск заданной последовательности байтов.
• Next - выполняет повторный поиск заданной последовательности байтов.
• Change - изменяет значения в текущей области памяти.
• Follow\Near Code - позиционирует курсор окна дизассемблированного кода в соответствии с указанным адресом памяти.
• Follow\Offset to Data - выполняет перемещение по адресу, на который указывает курсор.
• Previous - возвращает курсор на прежнее место после вызова команды Follow.
• Display As - используется для выбора формата представления данных.
1.2.7.1.1.3. Окно представления стека
В окне отображается текущее состояние стека программы. По умолчанию значения отображаются в шестнадцатеричном формате.
Информация в окне представляется тремя колонками: адрес памяти, значение по данному адресу в стеке и его ASCII-представление.
Текущий указатель можно перемещать вперед или назад используя соответственно клавиши Ctrl+ или Ctrl+ .
Окно имеет контекстное меню:
• Go to Address - перемещает текущий указатель к указанному адресу.
• Change Thread - вызывает окно Select Thread, в котором можно выбрать программу для отладки.
• Top of Stack - значение ESP регистра. Позиционирует указатель по адресу вершины стека.
• Follow\Offset to Stack - разрешает переместиться в окне представления стека по адресу, на который указывает курсор.
• Follow\Near Code - позиционирует курсор окна дизассемблированного кода в соответствии с указанным адресом памяти.
• Follow\Offset to Datа - разрешает перемещение в окне представления области памяти по адресу, на который указывает курсор.
• Previous - возвращает курсор на прежнее место после вызова команды Follow.
• Change - изменяет текущее значение в стеке.
• Display As - используется для выбора формата представления данных.
1.2.7.1.1.4. Окно регистров процессора
Окно отображает значения всех регистров процессор в данный момент выполнения программы. После выполнения какой либо инструкции измененные значения выделяются в окне красным цветов.
Окно имеет контекстное меню:
• Increment Register - увеличивает значение регистра на единицу.
• Decrement Register - уменьшает значение регистра на единицу.
• Zero Register - обнуляет регистр.
• Go to Register - изменяет текущее значение регистра.
• Change Thread - вызывает окно Select Thread, в котором можно выбрать программу для отладки.
1.2.7.1.1.5. Окнопредставления флагов процессора
Окно отображает текущее состояние 32-разрядного регистра флагов процессора (ЕFL).
После выполнения какой либо инструкции измененные значения выделяются в окне красным цветов.
Окно имеет контекстное меню:
• Toggle flag - осуществляет переключение флага.
• Change Thread - вызывает окно Select Thread, в котором можно выбрать программу для отладки.
1.2.7.1.2. Журнал событий
Окно Event Log вызывается одноименной командой:
View | Debug Windows | Event Log
из главного меню.
Окно содержит содержит список всех сообщений о ходе выполнения программы, сообщений о точках останова и оконных сообщений.
Настройки журнала событий находятся на странице Event Log окна Debugger Options, которое вызывается клмандами:
Tools | Debugger Options .
В поле Length указывается максимальное количество строк сообщений. Включенный переключатель Unlimited Length позволяет иметь максимально полный журнал событий. При включенном переключателе Clear Log On Run журнал событий очищается при каждом запуске программы. При включенном переключателе Breakpoint messages в журнал событий будут записываться сообщения о прерывании программы в точке контрольного останова. При включенном переключателе Process messages в журнал событий будут записываться сообщения об изменении состояния процесса, например, о загрузке / выгрузке DLL. При включенном переключателе Output messages в журнал событий будут записываться сообщения, посланные с использованием вызова процедуры OutputDebugStrings. При включенном переключателе Windows messages в журнал событий будут записываться сообщения Windows.
Окно имеет контекстное меню:
• Сlear Events - очищает журнал событий.
• Save Events to File - сохраняет все сообщения в текстовом файле.
• Add Comments - добавляет в журнал событий строку, введенную в окне Add Comment to Event Log.
• Properties - вызывает страницу Event Log окна Debugger Options.
• Dockable - разрешает или запрещает окну пристыковываться к другим окнам IDE Delphi.
1.2.7.1.3. Окно Local Variables
Окно Local Variables вызывается одноименной командой:
View | Debug Windows | Local Variables
из главного меню.
В окне отображаются значения всех локальных переменных и фактических параметров текущей процедуры.
Позволяет наблюдать изменения локальных переменных.
1.2.7.1.4. Окно Debug Inspector
Командой:
Run | Run Inspect
главного меню вызывается диалоговое окно Inspect. Следует отметить, что команда Run Inspect активна только в момент приостановки процессов отладки или выполнения приложения.
В окне Inspect в поле Expression необходимо ввести идентификатор объекта, выбранного для инспектирования и нажать кнопку ОК. После этого появится окно Debug Inspector (рис. 1.47).
Рис.1.47. Окно Debug Inspector
В окне на трех страницах представлены значения всех полей, свойств и адреса методов указанного объекта.
1.2.7.1.5. Окно Modules
Окно Modules вызывается командой:
View | Debug Windows | Modules
из главного меню.
В окне отображаются список всех процессов , контролируемых отладчиком. Процесс может содержать несколько загружаемых модулей. Они отображаются в списке непосредственно под строкой процесса. После выгрузки модуля из памяти строка с его именем удаляется из списка.
Имя первого загружаемого процесса появляется вверху списка, остальные добавляются в конец. По завершении своей работы процесс удаляется из списка.
Текущий процесс отмечен стрелкой.
1.2.7.1.6. Окно Thread Status
Окно Thread Status вызывается командой:
View | Debug Windows | Threads
из главного меню.
В окне Thread Status можно просмотреть все процессы, запущенные из Delphi. Зеленая стрелка указывает на активный процесс. Эта программа в данный момент доступна в отладчике. Голубые стрелки указывают на неактивные процессы.
Двойным щелчком мыши можно сделать активным другой процесс.
1.2.7.2. Работа с программой Winsight32
В комплект поставки Delphi входит программа Winsight32 ( ws32.ехе). Это TSR-программа (программа "агент"). После запуска в фоновом режиме она перехватывает и регистрирует все сообщения Windows - рис. 1.48.
Рис.1.48. Окно программы Winsight32
Утилита Winsihgt32 является пассивным наблюдателем за работой других приложений.
1.2.8. ГРАФИЧЕСКИЙ РЕДАКТОР
Окно графического редактора Image Editor (рис. 1.49) вызывается командой:
View | Debug Windows | Threads
из главного меню.
Рис. 1.49. Графический редактор.
Графический редактор предназначен для просмотра, создания и редактирования графических объектов.
Однако с помощью графического редактора Image Editor нельзя редактировать меню, строки таблиц, диалоговые окна.
1.2.9. УДАЛЕННАЯ ОТЛАДКА
Основными компонентами удаленной отладки являются:
• Клиент. В качестве клиента выступает IDE Delphi (DELPHI32.EXE). IDE Delphi обеспечивает интерфейс пользователя во время отладки.
• Сервер отладки на удаленной машине - BORDBG.EXE. Сервер должен иметь доступ к библиотеке DCC50.DLL.
Функции сервера отладки обеспечивают его взаимодействие с клиентом через локальную сеть и позволяют управлять процессом отладки.
Клиентская часть сможет подсоединиться к серверу, когда он будет запущен. Для запуска сервера нужны права администратора. В среде Windows-95, Windows-98 запуск сервера производится вручную (BORDBG.EXE). Инсталяция сервера отладки как сервиса Windows NT производится отдельной программой установки.
Для настройки клиента необходимо выполнить следующее:
• Выполнить команды Project | Options | Linker и на панели EXE and DLL options установить опцию Include remote debug symbols.
• Выполнить команды Run | Parameters и на странице Remote в полях ввода Remote Path и Remote Host задать требуемые значения.
• Задать имя удаленного компьютера или его IP-адрес. Если потребуется, указать номер порта и пароль.
Соединение между компьютерами клиента и сервера должно быть установлено с использованием протокола TCP/IP. TCP-соединение устанавливается с помощью стандартных DNS-имен. Имя компьютера и DNS-имя должны быть различны в сети Microsoft, их можно посмотреть в свойствах сетевого окружения.
После настройки можно начинать удаленную отладку.
IDE Delphi позволяет вести отладку одновременно нескольких процессов (тестируемых приложений) как на локальном, так и на удаленных компьютерах. Если одновременно тестируемые проекты содержат совместно используемые файлы, их необходимо сначала перекомпилировать с помощью команды Project | Build All projects. Режим комплексной отладки Multiple process debugging поддерживается на локальной и удаленных машинах - в отладочных окнах теперь видны все запущенные на отладку процессы. Для ведения отладки используются рассмотренные выше окна Project Manager, Thread Status, Modules, Run Parameters.
1.2.10. ВЗАИМОДЕЙСТВИЕ ПРИЛОЖЕНИЙ
Как уже выше отмечалось, большинство приложений MS Windows 97 могут работать и как серверы и как клиенты. Приложения, выступающие в роли сервера, рассылают обработанную информацию. А приложения, выступающие в роли клиента, используют эту информацию. Поэтому возникает задача создания стандартного механизма и соответствующей технологии, на основе которых программы могли бы взаимодействовать между собой обмениваясь информацией. Причем, чтобы от программиста не требовалось дополнительных усилий по организации такого взаимодействия.
1.2.10.1. ТЕХНОЛОГИЯ DDE
Технология DDE (Dynamic Data Exchange) реализует динамический обмен данными. Программа сервер может информационно обениваться текстовыми строками с программами клиентами, подключенными к ней с помощью протокола DDE. Примером сервера DDE является электронная таблица Excel-97.
В IDE Delphi 5 на странице System имеются 4 компонента для поддержки технологии DDE: