|
Программирование >> Перегруженные имена функций и идентификаторы
имя соответствующей DLL. Чтобы добавить DLL к списку, нажмите кнопку Add DLL. При выполнении по шагам функции DLL отладчик автоматически загружает таблицу идентификаторов и исходный код этой DLL. Чтобы предотвратить это, откройте диалоговое окно Load Module Source or DLL Symbols (F3), подсветите в списке нужную DLL, выберите кнопку No и щелкните мышью на OK. Turbo Debugger будет выполнять вызовы DLL как одну команду. Отладка кода запуска DLL Когда ваша программа загружает DLL, выполняется код запуска DLL. По умолчанию Turbo Debugger не выполняет по шагам этот код. Однако, если вам нужно проверить корректность загрузки DLL, то нужно отладить код запуска. Отладчик позволяет отлаживать два вида такого кода: код инициализации, непосредственно следующий за LibMain (по умолчанию) и скомпонованный с DLL код ассемблера. Этот код инициализирует процедуры запуска и эмулирует математические пакеты (этот режим отладки выбирается параметром -l командной строки отладчика). Чтобы начать отладку кода запуска DLL, нужно перезагрузить программу (Run Program Reset или F2), а затем выполнить следующие шаги: вывести диалоговое окно Load Module Source or DLL Symbols (F3); подсветите в блоке списка DLL & Programs DLL, код запуска которой вы хотите отладить; выберите кнопку с зависимой фиксацией Debug Startup (если нужной DLL в списке нет, добавьте ее как описано выше); повторите эти шаги, если нужно задать отладку для нескольких DLL; для перезагрузки приложения выберите команду Run Program Reset или F2. При отладке имейте в виде следующее: Перед перезагрузкой текущего приложения выполняйте до конца код запуска DLL, иначе Windows может зависнуть. Установка точек останова на первой строке приложения или первой строке после вызова LoadLibrary гарантирует возврат управления в Turbo Debugger. После завершения отладки кода запуска нажмите F9, чтобы пройти его до конца и вернуться в приложение. Отладка мультинитевых программ Окно Thread, которое открывается по команде View Thread, поддерживает мультинитевую среду Windows NT. Это окно содержит три области: списка нитей, детализации и информационную. В информационной области перечисляется общая информация о нити. Поле Last указывает последнюю нить, выполненную перед передачей управления в Turbo Debugger; поле Current показывает нить, которая выводится в окнах отладчика; поле Total - общее число активных программных нитей, а поле Notify - Yes ии No для статуса Notifu или Termination отдельнтх нитей. Общий статус устанавливается с помощью команды All Threads. Область нитей В этой области перечисляются все активные нити программы, идентифицируемые по номеру нити (назначаемому Windows NT) и имени. Turbo Debugger генерирует имя нити, когда ваша программа создает нить. Первая создаваемая нить называется Thread 1, затем Thread 2 и т.д. Это имя можно изменить. Окно Thread содержит единое SpeedMenu, которое активизируется из всех областей и содержит перечисленные ниже команды. Options Открывает диалоговое окно Thread Options, позволяющее задать параметры отдельных нитей. Кнопка Freeze этого окна позволяет замораживать и размораживать индивидуальные нити. Включение этой кнопки означает, что нить выполняться не будет. Для выполнения программы необходима хотя бы одна активная нить. Кнопка Notify or Tremination позволяет задать, должен ли отладчик уведомлять вас о завершении текущей (подсвеченной) нити (он генерирует сообщение и активизирует окно Module и CPU с текущим адресом программы). Чтобы задать уведомление для всех нитей, используйте команду меню All Threads. Поле ввода Thread Name позволяет изменить имя текущей нити. Make Current Команда Make Current позволяет сменить нить, обрабатываемую отладчиком. Подсветите в области Threads List нить, которую вы хотите проверить, и нажмите Ctrl+M (или выберите Make Current). Inspect Открывает окно Module или CPU, которое показывает для подсвеченной нити текущую точку выполнения. Этой команде эквивалентна клавиша Enter. All Threads Открывает меню, команды которого относятся ко всем нитям программы. Это команды Thaw, Freeze, Enable Exit Notification и Disable Exit Notification. Step Позволяет переключаться между All и Single. При выборе All клавиши F7 и F8 приводят к выполнению всех нитей программы, а Single позволяет выполнять только одну нить. Область детализации В этой области выводится подробная информация о нити, подсвеченной в области списка нитей. Первая строка показывает статус подсвеченной нити (приостановлена или выполняется) и ее приоритет. Операционная система устанавливает 5 различных приоритетов (от -2 до 2). Вторая строка показывает текущую точку выполнения нити, а третья (если она есть) - как получил управление отладчик. Трассировка исключительных ситуаций операционной системы В TD32 команда OS Exceptoions (в SpeedMenu области кода окна CPU) открывает диалоговое окно Specify Exception Handling, в котором вы можете задать, как Turbo Debugger должен
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |