Налагодження shell extensions за допомогою delphi

Налагодження Shell extensions за допомогою Delphi

В даний час інтегровані середовища програмування Borland Delphi і Borland C ++ Builder є досить зручними засобами для розробки розширень оболонки Windows (далі Shell extensions).

На відміну від засобів розробки компанії Microsoft, де весь код Shell extension пишеться всередині шаблону, що генерується за допомогою «Shell Extension Wizard», в Delphi ви можете використовувати як подібні генератори шаблонів, так і більш швидкий і простий візуальний підхід для розробки Shell extensions, наприклад пакет компонентів «Shell +». У будь-якому випадку важливим питанням є налагодження ваших Shell extensions.

Підготовка проекту Delphi для налагодження з Windows Shell

Ви повинні включити всю необхідну зневадження в ваш проект. Для цього перед компіляцією відкрийте вікно «Project Options» (пункт меню Project | Options.), Перейдіть на закладку «Linker» і в групі «Exe and Dll Options» позначте флажек «Include remote debug symbols». Він включає генерацію спеціальних даних для віддаленої налагодження, які так само необхідні для налагодження COM-додатків. Після закінчення робіт над налагодженням вашого Shell extension не забудьте відключити цю можливість, так як вона значно збільшує розмір модуля і створює ще більший за розмірами файл з розширенням * .rsm, в якому і зберігаються символи вилученого налагодження. Так само для зручності налагодження включите флажек «Use debug DCUs» на закладці «Compiler» діалогу «Project Options». Це дозволить вам стежити за внутрішньою роботою модулів, які не були включені в список модулів вашого проекту.

Так само ви не повинні забувати про доступність вихідних текстів вашого Shell extension для відладчика Delphi. Вони повинні знаходитися в поточній для Delphi директорії або до них повинен бути прописаний шлях в діалозі Project | Options | Directories / Conditionals, пункт - «Debug Source Path».

Після виконання всіх дій з налаштування властивостей проекту ви повинні повністю перекомпілювати ваш проект (через пункт меню Project | Build.).

Особливості налагодження DLL під Windows XP

Якщо ви працюєте під операційною системою Windows XP, то при налагодженні DLL-бібліотек у вас виникнуть труднощі. Вони полягають в тому, що відладчик Delphi не завантажує символи налагоджувальної інформації з бібліотеки.

Ця помилка вже виправлена ​​в Delphi 7, але якщо ви працюєте з більш ранніми версіями, вам стане в нагоді ця рада: виконайте всі приготування до налагодження, як було описано вище, запустіть налагодження. Після того, як головне додаток запуститься, перейдіть в Delphi і натисніть комбінацію клавіш Ctrl + Alt + M. У вікні списку завантажених модулів знайдіть ваш модуль, клацніть на ньому правою кнопкою миші і виберіть пункт ReloadSymbol Table. У вікні, яке з'явиться, введіть повний шлях до вашої DLL і натисніть ОК. Таблиця налагоджувальних символів повинна перезавантажитися і ви отримаєте можливість встановлювати точки переривання і стежити за поведінкою вашого Shell extension.

Підготовка Windows Explorer до роботи під отладчиком

Носієм функціональності Shell є додаток Windows Explorer. Ви можете побачити на екрані свого комп'ютера такі об'єкти, як Desktop, Taskbar, вікна папок файлової системи. Все це реалізовано додатком Windows Explorer, і Ви можете побачити це додаток в Task Manager.

Зіставлений йому процес називається Explorer.exe. Там же ви можете побачити, що у вас іноді запущено кілька екземплярів цього процесу. Не дивуйтеся - вся справа в налаштуваннях Windows, що і буде показано далі.

У будь-якій операційній системі можна застосувати наступний метод для запуску Windows Shell під налагодженням:

Щоб це значення почало діяти ви повинні виконати Log off і потім Log on. Не забувайте відключати цю можливість після завершення налагоджувальних робіт над вашим Shell extension, так як вона погано позначається на продуктивності Windows.

Налагодження Shell extensions

Після всіх виконаних приготувань ви можете натиснути кнопку Run (F9) і запустити ваш Shell extension на налагодження. Встановлюйте точки переривання в потрібних місцях, використовуйте кнопки Program Pause і Program Reset при необхідності. Налагодження Shell extensions більш нічим не відрізняється від налагодження звичайних додатків Delphi. Не дивуйтеся, якщо після обриву налагодження проекту через «Program Reset», Windows Explorer буде завантажуватися сам. Це стандартна реакція Windows на помилкове завершення процесу Explorer. Для нормального завершення процесу налагодження ви можете скористатися способом, описаним раніше (через Пуск | Завершення роботи). Windows Explorer - додаток багатопоточний. Для кожного використовуваного Shell extension воно створює окремий потік, в якому і працює з ним в подальшому. Тому не дивуйтеся, якщо в процесі покрокової налагодження вас раптово перекине в іншу ділянку коду, де ви недавно налагоджували, а потім поверне знову на старе місце. За вашими подорожами крізь потоки ви можете стежити через вікно Thread status, яке можна відкрити через меню View | Debug Windows | Threads.

Як ви помітили, налагодження Shell extension не представляє з себе нічого складного. Бажаю вам удачі в розробці корисних і успішних розширень оболонки.