снова вызовите список объектов глобальной
снова вызовите список объектов глобальной памяти и выбе-
рите команду Close Log File (Закрытие файла регистрации),
чтобы закрыть файл.
TDeb 3.0 #3-3 = 59 =
8. Выберите из локального меню команду Erase Log (Стереть
протокол), чтобы очистить протокол.
9. Нажмите F9, чтобы снова запустить программу, и при помощи
"мыши" проконтролируйте информацию в блоке About Program
Manager. Запомните проценты, приведенные там для систем-
ных ресурсов.
10. Нарисуйте в Simple Paint достаточно, чтобы уменьшить сис-
темные ресурсы на 20-30 процентов.
11. Нажмите клавишу для возврате в TDW и повторите шаги 4-8,
на этот раз с другим именем файла протокола (регистра-
ции).
12. Выйдите из TDW, распечатайте файлы протоколов и сравните
их.
Проделав это, вы отметите следующее:
- Объекты памяти, принадлежащие BCWDEMOB, не увеличились в
размерах.
- Объекты памяти GDI увеличились в размерах.
Первое из этих примечаний подтверждает то, что вы уже знаете
о программе: отлаживаемый код программы BCWDEMOB выделяет гло-
бальную память, а не локальную.
Второе говорит вам нечто новое: BCWDEMOB выделяет объекты
Интерфейса графических устройств (GDI) и не освобождает их.
Нахождение ошибки: функциональный подход
-----------------------------------------------------------------
Теперь, зная характер ошибки, вы можете начать искать место
в программе, где выделяются объекты памяти, не освобождаемые
впоследствии. Для этого полезно сделать функциональный обзор
программы и исследовать каждую подпрограмму в последовательности
их вызова.
Выбор элементов меню