Точки останова DLL не попадают с опцией «символы удаленной отладки», почему и какие-либо риски безопасности с ними?

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

Проект -> Параметры -> Компоновщик (вкладка) -> Параметры Exe и DLL (групповое поле) -> «Включить символы удаленной отладки» (отмечен)

Внезапно мои точки останова начали срабатывать. Вот мои вопросы:

1) Почему это сработало? Это из-за опции или из-за того, что эта опция вызвала некоторую другую операцию компилятора / компоновщика, которая исправила ситуацию? Я хотел бы знать, чтобы я мог надежно исправить эту проблему в будущем, когда она повторится снова.

2) Могут ли враждебные программисты использовать символы удаленной отладки для глубокого отслеживания моей программы? Другими словами, представляют ли они угрозу безопасности, если их оставить без дела?

5
задан mattytommo 19 March 2013 в 16:53
поделиться