:: Меню ::

Головна
  • Про сайт
  • Введення
  • Середовище програмування VB .NET: Visual Studio .NET
  • Вирази, оператори і передача управління
  • Класи і об'єкти
  •  Спадкоємство і інтерфейси
  • Обробка подій і делегати
  • Обробка помилок в VB .NET
  • Форми Windows, графічний вивід і друк
  • Уведення-виведення
  •  Багатопотокові застосування
  • Підтримка баз-даних в VB .NET
  • Короткий огляд ASP .NET
  • Складки .NET, установка додатків і COM Interop
  • Книга для гостей
    Контакти
    Добавити у вибране

    :: Друзі ::

     
     

    :: Лічильники ::

    = =

     

     

     

     

    Параметри компіляції

    Познайомившись з різними способами компіляції проектів і рішень, ми переходимо до опису параметрів компіляції окремих проектів. Клацніть правою кнопкою миші на імені проекту у вікні рішення і виберіть команду Properties > Configuration Properties > Build — на екрані з'являється вікно для налаштування параметрів компіляції. Наприклад, параметр Debugging дозволяє задати аргументи командного рядка.

    Мал. 2.24. Діалогове вікно властивостей проекту

    В порівнянні з Vb6 параметрів зовсім небагато. Втім, шкодувати про це не потрібно: багато що з того, чим в Vb6 доводилося займатися вам, в CLR робиться автоматично. Зокрема, в параметрах компіляції можна вказати, чи потрібно створювати налагоджувальну інформацію (див. наступний розділ), визначати константи DEBUG і TRACE і видавати попередження [ Дуже важко представити ситуацію, в якій відключення попереджень було б виправдане. ]. Константи DEBUG і TRACE виконують ті ж функції, що і в Vb6: вони дозволяють використовувати в програмі команди умовної компіляції:

    #If DEBUG Then

    Debug.WriteLine("In debug mode")

    #End If

    #If TRACE Then Trace. Whtelirie( "Tracing")

    #End If

    Якщо константа DEBUG не визначена, то перевірка в першому рядку не проходить і команда Debug.WriteLine не виконується. Те ж саме відбувається і при перевірці константи TRACE.

    У категорії Optimizations списку Configuration Properties можна відключити перевірку цілочисельного переповнювання — втім, робити це небажано. Ймовірно, Microsoft додасть нові способи оптимізації в остаточній версії VB .NET або в доповненнях.

    Налагоджувальна і остаточна версії

    У верхній частині діалогового вікна Project Properties > Configuration Properties > Build знаходиться список Configuration, що розкривається, складається з трьох пунктів: Release (Остаточна версія), Debug (Налагоджувальна версія) і All Configurations (Всі конфігурації). За допомогою цього списку можна задавати різні набори параметрів для різних типів компіляції. Наприклад, коли робота над додатком наближається до кінця, в остаточній версії можна змінити деякі з параметрів, встановлених раніше в налагоджувальній версії. Для цього слід вибрати в списку пункт Release і провести додаткове налаштування. Кнопка Configuration Manager дозволяє задати параметри компіляції відразу для декількох проектів.

    Зазвичай відмінності між версіями зводяться до включення налагоджувальної інформації або дозволу/заборони оптимізацій. Ми рекомендуємо в процесі розробки використовувати налагоджувальну конфігурацію, а потім побудувати підсумковий варіант продукту в остаточній конфігурації. Наприклад, в налагоджувальній конфігурації можна включити режим інтерпретації попереджень як помилок («Treat warnings as errors»), а в остаточній конфігурації — відключити його.

    Вихідні файли

    Що ж виходить в результаті компіляції проекту? На мал. 2.25 показана структура каталогів, IDE, що згенерували, для вирішення vb_ide_01.

    Мал. 2.25. Дерево каталогів після компіляції

    Як згадувалося вищим, початкові файли зберігаються на верхньому рівні ієрархії, в каталозі vb_ide_01. У каталог bin поміщаються двійкові файли, отримані при компіляції, — в нашому прикладі створюються файли з розширеннями .ехе і .pdb. Файл з розширенням .pdb містить налагоджувальну інформацію і створюється тільки в тому випадку, якщо налагоджувальна інформація зажадалася в діалоговому вікні параметрів компіляції (Project > Configuration Properties > Build).

    Відладка в VB.NET

    У цьому розділі приводиться короткий огляд змін в засобах відладки VB .NET. Ми повернемося до цієї важливої теми пізніше, коли у нас з'явиться змістовний код для відладки. На жаль, починати доводиться з сумної звістки. Якщо раніше VB дозволяв перервати роботу програми, відредагувати її і продовжити виконання з урахуванням внесених змін, то починаючи з бета-версиі 2 ця можливість не підтримується. Програму можна редагувати в процесі відладки, проте зміни набувають чинності лише після повторної компіляції. Втім, різні засоби покрокового виконання і переривання програм (такі як умовні точки переривання) працюють так само, як і раніше.

    Та все ж можна з упевненістю сказати, що існування загального відладчика рівня VS .NET, по своїх можливостях порівнянного з відладчиком Vc++, є одним з найпомітніших удосконалень VB .NET на тлі попередніх версій VB. Значно розширилися можливості роботи зі всіма складовими додатку, аж до відладки на рівні завантажених модулів і програмних потоків.

    Для роботи відладчика необхідний файл .pdb з налагоджувальною інформацією. Щоб створити цей файл, необхідно встановити прапорець Generate symbolic debug information в діалоговому вікні параметрів компіляції. За даними файлу .pdb відладчик визначає, який рядок початкового тексту відповідає поточній позиції виконуваного файлу і які символічні імена були привласнені змінним програми. Без налагоджувальної інформації неполадки доведеться шукати в асемблерному лістингу.

    Нові можливості відладчика

    Відладчик VB .NET володіє деякими новими можливостями, відсутніми в Vb6. Коротке зведення цих можливостей приведене нижче.

    Вікно пам'яті

    Вікно пам'яті призначене для проглядання фактичного вмісту заданої області пам'яті. Ні у одній з колишніх версій VB не підтримувалася ця можливість, надзвичайно корисна в деяких ситуаціях, — наприклад, якщо ви хочете простежити за виконанням низькорівневої коди і з'ясувати, що ж саме відбувається при роботі вашої програми. Вікно пам'яті викликається в IDE командою Debug > Windows > Memory > Memory1 (або 2-4). Зразковий вид вікна пам'яті показаний на мал. 2.26. Якщо клацнути у вікні пам'яті правою кнопкою миші, з'явиться контекстне меню, в якому вибирається представлення вихідних даних.

    Відладка процесів

    З технічної точки зору в будь-якому сеансі відладки завжди задіяний деякий процес (про процеси розказано в розділі 10). У попередніх версіях VB відладчик не дозволяв підключатися до працюючих проце'сам — така можливість була передбачена тільки у відладчику Visual C++. У VB .NET команда Debug > Processes виводить діалогове вікно, показане на мал. 2!27.

    Мал. 2.26. Вікно пам'яті

    Мал. 2.27. Вибір процесу для відладки

    Щоб почати відладку, виділите процес в списку і клацніть на кнопці Attach. Після підключення до процесу кнопка Break виводить інформацію про поточний стан додатку. Якщо налагоджувальна інформація відсутня, виводиться лістинг на мові асемблера. Після натиснення кнопки Attach на екрані з'являється діалогове вікно, в якому вам пропонується вибрати, що ж ви збираєтеся відладжувати — машинний код, код CLR, сценарій і так далі В більшості випадків відладжується або машинний код, або код CLR. Длл прикладу ми запустили екземпляр додатку Notepad.exe і підключилися до нього у відладчику VB .NET. Результат показаний на мал. 2.28.

    Мал. 2.28. Відладка процесу Notepad.exe

    Лістинг виглядає страхітливо, оскільки ми не маємо в своєму розпорядженні налагоджувальної символічної інформації для програми Notepad.exe. За наявності цих даних у вікні з'явився б фрагмент початкового тексту функції, що виконувалася у момент передачі управління відладчику.

    Відладка потоків

    У відладчику VB .NET передбачений ще один важливий засіб — проглядання всіх виконуваних потоків (threads) додатку. Перемикання потоків у відладчику грає дуже важливу роль у відладці багатопотокових застосувань. Ми повернемося до цієї теми в розділі 10 при знайомстві з багатопотоковим програмуванням.

    Управління виключеннями

    На перший погляд управління виключеннями здається екзотикою, не пов'язаною з практичною роботою. Щоб оцінити цю можливість по гідності, досить опинитися за ситуації, коли на стадії тестування виникають численні виключення (див. розділ 7) і виникає необхідність в тонкому налаштуванні дій, що виконуються при виникненні виключень. Це робиться в діалоговому вікні, що викликається командою Debug > Windows > Exceptions. У цьому вікні ви указуєте, як повинен діяти відладчик при виявленні виключень певного типу. Допустимо, ви хочете, щоб при виникненні помилок доступу управління передавалося відладчику.

    1. Виберіть виключення Win32exceptions >0xc0000005.
    2. Встановите в групі When the exception is thrown перемикач Break into the debugger.

    В результаті відладчик автоматично викликатиметься при виникненні помилок доступу (0xc0000005), і ви зможете точно визначити, в якому рядку програми це відбулося.

    Відладка керованої і некерованої код

    Керованим (managed) в .NET називається код, що виконується за участю CLR. У керованому коді не можна використовувати покажчики, а виділенням/звільненням пам'яті займається CLR. Некерований код не підкоряється цим обмеженням. Він може створюватися в C++ і С#, але в VB .NET така можливість не підтримується.

    Керований код ускладнює роботу деяких засобів відладки. Річ у тому, що виконавче середовище CLR прикладає значні зусилля до оптимізації виконуваної коди, що утрудняє отримання правильних кадрів стека (тобто адрес всіх викликаних функцій). Крім того, залежно від специфіки програми оптимізація може досягти такого ступеня, що код, що відображається у відладчику, погано асоціюється з початковим текстом. Втім, в порівнянні з перевагами нового середовища відладки VB .NET ці проблеми йдуть на другий план.

     


    создать сайт украина, удмуртская республика

    :: Наша кнопка ::

    Отримати код:

    Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


    :: Реклама ::

    Скачати безкоштовно програму Microsoft Front Page 2003


    :: Посилання ::

    -


     

     

     


    Copyright ©