На этом шаге мы рассмотрим возможности отладчика для отладки программ.
Загрузить модуль для отладки можно двумя способами. С помощью команды Debug | Load Process загружается для отладки уже дизассемблированный модуль. Команда Debug | Attach to an Active Process позволяет "подсоединяться" и отлаживать процесс, находящийся в памяти. После загрузки отладчика на экране появляются два окна. Первое окно информационное (рисунок 1), в документации оно называется "нижним левым окном отладчика".
Рис.1. Первое информационное окно отладчика
Второе окно управляющее (рисунок 2), называемое в документации "нижним правым окном отладчика".
Рис.2. Второе управляющее окно отладчика
Информационное окно содержит несколько окон-списков:
Позже мы объясним также значения кнопок этого окна.
Обратимся теперь к управляющему окну. Кнопка Run запускает загруженную в отладчик программу, кнопка Pause приостанавливает работу программы, кнопка Terminate останавливает выполнение программы и выгружает ее из отладчика. Кнопки Step Over и Step Into используются для пошагового исполнения программы. Первая кнопка, выполняя инструкции, "перескакивает" код процедур и цепочечные команды с повторением, вторая кнопка выполняет все инструкции последовательно. Кроме того, имеются кнопки AutoStep Over и AutoStep Into для автоматического пошагового выполнения программы. В случае API-функций даже использование Step Into не приведет к пошаговому выполнению кода функции в силу того, что код функции не доступен для пользовательских программ. Очень удобно, что при пошаговом выполнении происходит передвижение не только в окне отладчика, но и в окне дизассемблера.
Отметим, что если вы подсоединяетесь к процессу, расположенному в памяти, то при выходе из отладчика процесс также будет выгружен из памяти, что может привести к неправильной работе операционной системы.
На следующем шаге мы рассмотрим работу с DLL.