Когда я запускаю надстройку COM Office из среды IDE Delphi 5 (используя любое из офисных приложений в качестве хоста), точки останова работают нормально (при использовании символов удаленной отладки и правильно настроенной выходной папки), но ни одно из исключений, не относящихся к delphi (например, нарушения доступа) в моем коде, не приводит к сбою IDE в этот момент. Вместо этого IDE останавливается при ручном повторном повышении в попытке ... за исключением оберток в любом из моих внешних методов безопасного вызова.
Я заметил, что по какой-то причине глобальный DebugHook был установлен в 0 (хотя, насколько я знаю, он всегда должен быть установлен в 1 при запуске из IDE). Более того, установка вручную значения 1 во время инициализации моей DLL фактически устраняет проблему: теперь среда IDE аккуратно останавливается на той строке, где мой экспериментальный (читай: дерьмовый) код вызывает исключение.
Вопрос: почему? Почему я должен сделать это вручную? Разве IDE не может установить это для меня? Я забыл где-то важный важный параметр, вызывающий такое поведение?