Я отлаживаю фильтр DirectShow, созданный с помощью библиотеки кода DSPACK, используя Delphi 6 Pro. Когда установленная мной точка останова достигается в одном конкретном модуле с именем BaseClass.pas и я начинаю трассировку, точка выполнения перескакивает в странные места в исходном коде. Обычно это указывает на то, что отслеживаемый исходный код не соответствует исходному коду, который был скомпилирован в один из пакетов, используемых приложением Delphi. Как ни странно, это только модуль BaseClass, поскольку я отследил другие модули, принадлежащие библиотеке кода DSPACK, и они не проявляют этой проблемы. Я не использую пакеты времени выполнения.
Я просканировал свой диск и нашел только одну копию BaseClass.dcu с датой модификации, равной дате последней сборки программы. Я не изменял источник для этого устройства или любого другого, принадлежащего DSPACK. Поскольку мой фильтр является частью основного приложения, это указывает на то, что BaseClass.pas будет подвержен ситуации двойного использования, поскольку он используется для создания пакета компонентов DSPACK (dpk), а также на него ссылается мое основное приложение напрямую через объект TBCSource мой фильтр происходит от. Обратите внимание: я попытался добавить файл PAS модуля непосредственно в свой проект, но это ничего не помогло.
Я также вернулся и повторно открыл каждый из файлов пакета DSPACK и выполнил полную перекомпоновку. Ничего из этого не помогло. Есть ли что-то еще, что я могу попытаться синхронизировать источник со скомпилированным изображением модуля BaseClass? Или это совсем другая проблема, и если да, то что это и как исправить?