Как узнать строку и модуль в которых возникла ошибка?
Модератор: Модераторы
- EmeraldMan
- постоялец
- Сообщения: 149
- Зарегистрирован: 16.10.2008 08:41:51
- Откуда: Белгород
- Контактная информация:
Как узнать строку и модуль в которых возникла ошибка?
Например, есть большой программный блок в try..except. При возникновении ошибки, её текст записывается в файл, выполнение продолжается дальше. Есть ли вообще способ узнать где именно возникла ошибка? При отладке проблем нет, интересует именно в рабочем варианте.
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Нужно узнать где произошла ошибка при записи её в файл? Т.е. имея на руках только что выброшенное исключение?
Писал себе такой модуль, когда хотел сделать чтобы были стектрейсы как в Java.
https://github.com/casteng/base/blob/dev/BaseDebug.pas
Думаю, в данном случае подойдет функция GetExceptionStackTrace() из него.
В FPC, насколько помню, работает без сторонних либ, вроде JCLDebug, только генерацию дебажной инфы надо включить.
Писал себе такой модуль, когда хотел сделать чтобы были стектрейсы как в Java.
https://github.com/casteng/base/blob/dev/BaseDebug.pas
Думаю, в данном случае подойдет функция GetExceptionStackTrace() из него.
В FPC, насколько помню, работает без сторонних либ, вроде JCLDebug, только генерацию дебажной инфы надо включить.
- EmeraldMan
- постоялец
- Сообщения: 149
- Зарегистрирован: 16.10.2008 08:41:51
- Откуда: Белгород
- Контактная информация:
Как раз то, что нужно, спасибо большое!
По названиям применяемых в функции GetExceptionStackTrace() объектов нашел ещё вики страничку по данной теме:
http://wiki.lazarus.freepascal.org/Logging_exceptions
Взял от туда DumpExceptionCallStack(E: Exception), немного переделал для своих целей.
Можно сказать, что в своих основах функции GetExceptionStackTrace() и DumpExceptionCallStack(E: Exception) одинаковы.
По названиям применяемых в функции GetExceptionStackTrace() объектов нашел ещё вики страничку по данной теме:
http://wiki.lazarus.freepascal.org/Logging_exceptions
Взял от туда DumpExceptionCallStack(E: Exception), немного переделал для своих целей.
Можно сказать, что в своих основах функции GetExceptionStackTrace() и DumpExceptionCallStack(E: Exception) одинаковы.
