Подключение Stacktrace в Delphi 2009
класс исключений в Delphi 2009 получил ряд новых функций. Некоторые из них связаны с получением stacktrace:
- свойства StackTrace:строка читать GetStackTrace;
- свойства StackInfo: Указатель читать FStackInfo;
- класс var GetExceptionStackInfoProc:функции (P: PExceptionRecord): Указатель;
- класс var GetStackInfoStringProc:функции (Info: Указатель):строка;
- класс var CleanUpStackInfoProc:процедура (Info: Указатель);
кто-нибудь уже использовал их для получения трассировки стека? Да, я знаю, что есть другие способы получить трассировку стека, но если она поддерживается изначально в классе исключений, я бы предпочел использовать что.
обновление: интерес пост в блоге об этом. Охватывает его в большой глубине.
4 ответов
для меня это похоже на фреймворк, где вы можете подключить свою собственную трассировку стека. Я предполагаю, что это может использоваться внутренне в IDE с JCLDebug. Возможно, он предназначен для пользователей, чтобы иметь возможность поставлять madExcept или другую реализацию.
Нет, я еще не использовал их (в настоящее время используя madExcept для этого, а также провел некоторые эксперименты с JclDebug) - но спасибо за совет!
TOndrej является правильным. Новые функции, добавленные в класс исключений, предназначены для третьих сторон для подключения собственного кода трассировки стека в RTL. Реализация по умолчанию класса Exception не создает собственные трассировки стека.
вам было бы неплохо взглянуть на MadExcept. Он не только обеспечивает отличную обработку любых необработанных исключений (захват экрана, электронная почта и т. д.), но и имеет хороший набор вызываемых подпрограмм, чтобы вернуть вам трассировку стека, которую вы можете использовать почти в любом месте. Брай