Как узнать строку и модуль в которых возникла ошибка?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Как узнать строку и модуль в которых возникла ошибка?

Сообщение EmeraldMan » 11.06.2013 18:44:28

Например, есть большой программный блок в try..except. При возникновении ошибки, её текст записывается в файл, выполнение продолжается дальше. Есть ли вообще способ узнать где именно возникла ошибка? При отладке проблем нет, интересует именно в рабочем варианте.
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: Как узнать строку и модуль в которых возникла ошибка?

Сообщение Mirage » 11.06.2013 20:31:23

Нужно узнать где произошла ошибка при записи её в файл? Т.е. имея на руках только что выброшенное исключение?
Писал себе такой модуль, когда хотел сделать чтобы были стектрейсы как в Java.
https://github.com/casteng/base/blob/dev/BaseDebug.pas
Думаю, в данном случае подойдет функция GetExceptionStackTrace() из него.
В FPC, насколько помню, работает без сторонних либ, вроде JCLDebug, только генерацию дебажной инфы надо включить.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Как узнать строку и модуль в которых возникла ошибка?

Сообщение EmeraldMan » 13.06.2013 02:13:00

Как раз то, что нужно, спасибо большое!
По названиям применяемых в функции GetExceptionStackTrace() объектов нашел ещё вики страничку по данной теме:
http://wiki.lazarus.freepascal.org/Logging_exceptions
Взял от туда DumpExceptionCallStack(E: Exception), немного переделал для своих целей.
Можно сказать, что в своих основах функции GetExceptionStackTrace() и DumpExceptionCallStack(E: Exception) одинаковы.
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru
cron