У меня была большая проблема с тем, что точки останова не попадали в DLL-библиотеку Delphi 6 DirectShow. Я бы загрузил DLL (AX) в IDE и запустил ее с Graph Edit в качестве программы Host, и ни одна из точек останова не сработала бы. Я попытался переместить FastMM4 DLL в каталог проекта, полностью удалил FastMM4, включил и выключил DCU отладки, очистил каталоги проекта, отменил регистрацию и перерегистрацию DLL - все, что я мог придумать. Ничего не получалось. Каждый раз, когда я запускал хост-программу, я видел загрузку моей DLL с сообщением «Нет данных отладки» в средстве просмотра событий. Затем в отчаянном поиске в Google я нашел сообщение для C ++ Builder, в котором рекомендовано использовать опцию компоновщика «Удаленные символы отладки»:
Проект -> Параметры -> Компоновщик (вкладка) -> Параметры EXE и DLL (групповое поле)
-> «Включить символы удаленной отладки» (проверено)
Внезапно мои контрольные точки начали бить. Вот мои вопросы:
1) Почему это работает? Это из-за опции или из-за того, что эта опция запускала какую-то другую операцию компилятора / компоновщика, которая исправляла вещи? Я хотел бы знать, чтобы я мог надежно исправить эту проблему в будущем, когда это произойдет снова.
2) Могут ли враждебные программисты использовать символы удаленной отладки для глубокого отслеживания моей программы? Другими словами, представляют ли они угрозу безопасности, если остаются без дела?