Подскажите по EurekaLog

  • Автор темы demav
  • 6940
  • Обновлено
  • 18, Aug 2010
  • #1
У меня в приложении некоторые ситуации обрабатываются путем вызова исключений. Например
 If Error Then

Raise Exception.Create('Вы допустили ошибку');
Правильно я понимаю, что в этом случае EurekaLog сформирует окно с предложением отправить сообщение разработчику? Мне бы хотелось, чтобы в данном случае это видел пользователь, без подключения Eureka.

Так можно? Или везде надо будет переделывать на Raise MyException, а в Eureka ставить исключение?

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 23, Apr 2020
  • #2
У меня с EurekaLog было не мало проблем, хотя 3 года более менее работало. После перехода на madExcept всё решилось.
 

eflc


Рег
17 Jul, 2010

Тем
0

Постов
1

Баллов
1
  • 06, May 2020
  • #3
Эврика слишком монструозная. Превратилась из полезной утилиты в огромный комплекс задач, не связанный с изначальной целью, как мне кажется. madExcept в этом плане гораздо оптимальнее.
 

ForumReader


Рег
16 Oct, 2008

Тем
0

Постов
10

Баллов
10
  • 18, Aug 2010
  • #4
Что значит "без подключения"? Если проект был скомпилирован с использованием EurekaLog, то на компьютере пользователя никаких дополнительных действий не потребуется.
 

ils


Рег
18 May, 2007

Тем
2

Постов
6

Баллов
26
  • 21, Aug 2010
  • #5
В данном случае имелось ввиду, что диалоговое окно с красным крестом должно быть стандартное, виндузовое - без кнопок отправки и т.п. Смысл в том, что такое окно - это ошибка пользователя (например, не указал обязательное поле). Надо просто сообщить ему об этом.

А отправлять разработчику ничего не надо
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 03, Oct 2010
  • #6
попробуй отловить своё исключение стандартным обработчиком (try-catch). насколько я понял принцип действия Eureka Log, она отлавливает не отловленные исключения.
 

koka123


Рег
27 Apr, 2009

Тем
2

Постов
14

Баллов
34
  • 03, Oct 2010
  • #7
Если отлавливать свои сообщения, то в try..except будет сложно отделить мои собственные сообщения от тех, которые сгенерит система при сбое.

Я пока сделал так.

Вызываю ошибку как Raise EMyException.Create (пришлось поменять все свои вызовы).

А в EurekaLog поставил исключение на EMyException.

Хотя скорее всего, напишу свой обработчик ошибок, более правильный на мой взгляд, чем EurekaLog
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 29, Oct 2010
  • #8
Я таки написал свой обработчик ошибок. Делает скриншот и отправляет в Mantis, предлагая ввести описание ошибки и имя пользователя. Потом еще добавлю регистрацию ошибок в БД (чтобы админ мог всё посмотреть). Мне так больше нравится, чем EurekaLog
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 29, Oct 2010
  • #9
novashdima, post: 720559:
demav
поделись исходником, плиз)))
Без проблем. Только у меня все компоненты на DevExpress сделаны, устроит? Кину в личку.
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 30, Oct 2010
  • #10
Постоянно пользуюсь EurekaLog на очень больших проектах (больше 1.5 млн строк кода).

Практически единственная вещь, с помощью которой можно отловить и пропущенные ошибки (вызывающие исключения), а также поймать утечки памяти.

Для вашей задачи по моему проще выдавать стандартные диалог форточек с иконкой ошибки.

MessageDlg('Сообщить пользователю об ошибке',mtError,[mbOk],0);

А EurekaLog будет ловить там, где вы что-то действительно упустили.

P.S. Если же вы все таки хотите воспользоваться именно вашим способом, то я видел пример использования EurekaLog (по моему в родном каталоге установки) и там можно было галочкой в процессе выполнения программы влиять будет или не будет задействован механизм отлова ошибок.
 

vladgul


Рег
27 Dec, 2009

Тем
7

Постов
16

Баллов
86
  • 31, Oct 2010
  • #11
vladgul, post: 720561:

Практически единственная вещь, с помощью которой можно отловить и пропущенные ошибки
Теперь я тоже такое отлавливаю с помощью моей утилиты.
а также поймать утечки памяти.
В общем да. Но для моих задач это не сильно актуально. И потом что - пользователю выдать ошибку об утечке памяти??? Ему это не сдалось совсем.

Для вашей задачи по моему проще выдавать стандартные диалог форточек с иконкой ошибки.
MessageDlg('Сообщить пользователю об ошибке',mtError,[mbOk],0);
Не совсем.

Нужно еще как-то предусмотреть возможность отправить или не отправлять ошибку разработчику.

Т.е. предусмотреть либо галочку, либо кнопку "Отправить сообщение об ошибке"

Т.е. нужно рисовать свой диалог ошибки.

EurekaLog также меняет диалог сообщений об ошибках в среде разработки (Delphi), что лично мне не нравится.

Плюсы собственной разработки еще в том:

- у меня добавлено окно, где можно описать порядок действий при возникновении ошибки.

А также указать ФИО чела и его Email для связи.

Иначе приходит безымянное сообщение - и что с ним делать? - вид сообщения об ошибке можно настроить самому (либо флаг, либо галку); - можно расширять функционал.

Например, добавить функцию журналировать сообщений об ошибках в базу для последующего анализа администратором; Я сделал выбор в пользу своего модуля
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 03, Nov 2010
  • #12
demav, post: 720562:

Не совсем. Нужно еще как-то предусмотреть возможность отправить или не отправлять ошибку разработчику. Т.е. предусмотреть либо галочку, либо кнопку "Отправить сообщение об ошибке"
Т.е. нужно рисовать свой диалог ошибки.
EurekaLog также меняет диалог сообщений об ошибках в среде разработки (Delphi), что лично мне не нравится.
В EurekaLog есть возможность и отправки отчета об ошибке разработчику по почте.

И возможность описания ошибки самим пользователем (что и как делал). Несколько видов окна для с ошибкой.

От собственной Eurekalog`овской, до стандартной Windows.

Причем все доп.

возможности с детальным просмотром информации об ошибке (включая ассемблерный код места ошибки) можно отключить для просмотра.

Занесение в БД конечно нет :-), но зачем пользователю в своей БД сохранять Ваши ошибки??? :-) (Это же не лог каких-нибудь запрещенных действий пользователя, а именно неадекватное поведение программы не предусмотренное разработчиком.)

И админу потом просматривать это дело?

Задача каким-либо образом поскорее получить отчет по ошибке.

Понять и исправить.
 

vladgul


Рег
27 Dec, 2009

Тем
7

Постов
16

Баллов
86
  • 03, Nov 2010
  • #13
vladgul, post: 720563:
В EurekaLog есть возможность и отправки отчета об ошибке разработчику по почте. И возможность описания ошибки самим пользователем (что и как делал).
Вы, конечно же, правы. Что в основном меня сподвигло к замене EurekaLog - это много всего по-мелочи.

Во-первых, не нравится вид окна ошибки (смотрел все). Во-вторых, если постить напрямую в mantis, то в EurekaLog негде описать кто и что делал. В-третьих, сначала не понравился флаг "сообщить разработчику", думал лучше сделать кнопку.

Типа захочет - нажмет.

Но потом я вернулся к флагу, т.к. понял, что мало кто нажимать станет В-четвертых, опять же при посте через Mantis, нет указания у кого установлена программа.

Вот, у меня, условно коробочный продукт установлен у 10-ти компаний.

К кому мне потом обращаться после получения ошибки (если не указали контактной информации)? А так я при сборке системы прописываю ID компании, который публикуется в mantis.

Хотя, в Eureka может и есть такая фича, не проверял. Для админа все же желательно смотреть сообщения об ошибках.

Т.к. пользователь может и не запостить сообщение об ошибке (в mantis), а потом выедать мозк - мол, не работало. Все это мелочи, несущественные.

Но как-то накопилось
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 07, Nov 2010
  • #14
Помоему у EurekaLog есть возможность указать исключения на которые он не должен реагировать. Т.е будет обрабатываться стандартно.
 

candro2


Рег
24 Sep, 2008

Тем
0

Постов
1

Баллов
1
  • 07, Nov 2010
  • #15
candro2, post: 720565:
Помоему у EurekaLog есть возможность указать исключения на которые он не должен реагировать. Т.е будет обрабатываться стандартно.
Есть. Но изначальный топик был про другое. А теперь это вообще не имеет значения
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 26, Nov 2010
  • #16
demav, post: 720564:
Вы, конечно же, правы.
В-четвертых, опять же при посте через Mantis, нет указания у кого установлена программа.

Вот, у меня, условно коробочный продукт установлен у 10-ти компаний.

К кому мне потом обращаться после получения ошибки (если не указали контактной информации)? А так я при сборке системы прописываю ID компании, который публикуется в mantis.

Хотя, в Eureka может и есть такая фича, не проверял.
Вообще, если обнаружилась ошибка у одного клиента, то у другого тоже может вылезти.

И не лучше ли не разбираться у кого конкретно, а предложить всем обновить ПО? По поводу переписывания Raise на MyException и в eurekalog сделать исключение, то скорее всего так и надо делать.

Если у вас построен механизм уведомления пользователя через исключения, то пусть это будут ваши спец.

исключения.

А остальные пусть помогает отловить Eurekalog.
 

vladgul


Рег
27 Dec, 2009

Тем
7

Постов
16

Баллов
86
  • 26, Nov 2010
  • #17
vladgul, post: 720567:
Вообще, если обнаружилась ошибка у одного клиента, то у другого тоже может вылезти. И не лучше ли не разбираться у кого конкретно, а предложить всем обновить ПО?

Ну да, конечно. Поработайте с десятками клиентов, причем у большинства свои версии (ветки) ПО. И тогда обсудим.
 

demav


Рег
20 Nov, 2008

Тем
4

Постов
29

Баллов
69
  • 11, Jan 2015
  • #18
Вопрос не совсем по сабжу, но очень надо. Кто подскажет как с помощью Eurika Log узнать в каком месте происходит утечка памяти?
 

Shostak.alexand


Рег
11 Jan, 2015

Тем
0

Постов
3

Баллов
3
  • 06, May 2016
  • #19
Никто не сталкивался с проблемой, что на ряде компов не отправляется Багрепорт? Просто все зависает. Куда хоть копать.
 

MAFyodorov


Рег
29 Dec, 2006

Тем
0

Постов
5

Баллов
5
  • 24, May 2016
  • #20
use Eurekalog 7.3 and delphi rx10 Seattle. 200+ single thread no responding.... Windows Server 2008 - Indy and ipWorks IPDaemon unknown error and no responding. What options do you change?
 

yyjksw


Рег
17 Jul, 2008

Тем
0

Постов
13

Баллов
13
  • 02, Jun 2016
  • #21
MAFyodorov, post: 720577:
Никто не сталкивался с проблемой, что на ряде компов не отправляется Багрепорт? Просто все зависает. Куда хоть копать.
Посмотреть например, не блокируется ли файрволом.
 

lexie


Рег
03 May, 2010

Тем
1

Постов
2

Баллов
12
  • 07, Jun 2016
  • #22
Ещё рекомендовал бы попробовать MadExcept. Мне показался более дружелюбным, к тому же бесплатный для некоммерческого использования.
 

Erazor


Рег
03 Jul, 2007

Тем
0

Постов
2

Баллов
2
  • 10, Jun 2016
  • #23
Erazor, post: 720582:
Ещё рекомендовал бы попробовать MadExcept. Мне показался более дружелюбным, к тому же бесплатный для некоммерческого использования.
Спасибо, попробую. А то с последней версией Eurekalog проблемы с отправкой BugReport так и не решилась. Уже весь мозг сломал.
 

MAFyodorov


Рег
29 Dec, 2006

Тем
0

Постов
5

Баллов
5
  • 24, Jun 2016
  • #24
у меня эврикалог показывает утечку в стандартных юнитах делфи, особенно часто вижу на всяких конвертациях юникодных строк, это только у меня так? XE10
 

Ruslan82


Рег
05 Feb, 2011

Тем
2

Постов
22

Баллов
42
  • 28, Jun 2016
  • #25
Использовал и MadExcept и эврикалог, в конце концов остались на эврике, в наших условиях работает лучше. Для Рускана82: бывает, к сожалению. В новых версиях вроде бы можно в опциях отключить.
 

OtherSide


Рег
27 Jun, 2016

Тем
0

Постов
4

Баллов
4
  • 03, Jul 2016
  • #27
А утечку памяти в виндошном сервисе кто-нибудь пробовал ловить с помощью EurekaLog? У меня почему-то после подключения EurekaLog, сервис стал зависать (видимо, в момент возникновения ошибки как раз).
 

Soltin


Рег
07 Feb, 2016

Тем
0

Постов
2

Баллов
2
  • 04, Jul 2016
  • #28
А что значит
Soltin, post: 720589:
в виндошном сервисе
? У себя использовал FastMM, в целом устраивал. Также у Eurekalog есть возможность фиксации утечки.
 

=FMA=


Рег
01 Jul, 2016

Тем
0

Постов
3

Баллов
3
  • 04, Jul 2016
  • #29
Виндошном сервисе = устанавливается как системная служба, которая запускается от системного пользователя. Попробую FastMM. Проблема в том, что включение ЕЛ приводит к фризам приложения.
 

Soltin


Рег
07 Feb, 2016

Тем
0

Постов
2

Баллов
2
  • 04, Jul 2016
  • #30
Насчет того, чтобы ЕЛ приводил к зависанию не слышал. В настройках Eurekalog поставь через сколько выдавать ошибку при зависании программы. Если прога сколько-то времени не отвечает, то ЕЛ автоматом сформирует ошибку.
 

=FMA=


Рег
01 Jul, 2016

Тем
0

Постов
3

Баллов
3
  • 04, Jul 2016
  • #31
если используется в сервисе, нужно отключить диалог об ошибке, только запись в протокол.
 

koka123


Рег
27 Apr, 2009

Тем
2

Постов
14

Баллов
34
  • 25, Jul 2016
  • #32
demav, post: 720552:
Мне бы хотелось, чтобы в данном случае это видел пользователь, без подключения Eureka.


Ну как бы надо определиться, как EurekaLog должна отличать эти исключения (которые надо показать пользователю) от всех прочих исключений (который надо отправить разрабу).

В зависимости от ответа на вышеуказанный вопрос (и версии EurekaLog) - можно использовать следующее:

1. Собственный класс исключения (и это, вообще, стоит делать всегда, даже если трейсер исключений не используется).

2. Exception Filters.

3. Событие OnExceptionNotify.

4. Атрибут EurekaLogExpected.

5. Ручная маркировка исключения как "expected".
 

JCDenton


Рег
15 Feb, 2013

Тем
1

Постов
15

Баллов
25
  • 02, Aug 2016
  • #33
Подскажите, как можно бы реализовать следующее.

Как известно, EurekaLog патчит *.dpr файл при компиляции и добавляет свои юниты в USES секцию в зависимости от своих настроек.

Мне нужно, чтоб имея файл проекта без этих вставок от еврики можно было бы сбилдить его при помощи MsBuild, предварительно пропатчив его еврикой.

Но как это сделать? В Delphi IDE это делает сама еврика перед билдом.

Надо тож самое только без IDE.
 

Andrik7503


Рег
19 Jul, 2016

Тем
0

Постов
6

Баллов
6
  • 02, Aug 2016
  • #35
JCDenton, post: 720597:
В справке целый раздел "Compiling your project with EurekaLog

" есть. Говоря кратко, надо запустить ecc32.exe с параметром --el_alter_exe. Ну и соответственно, если охота MSBuild - то вызов ecc32 надо добавить в success post build event проекта

.
Я об этом вкурсе. Но мне нужно сначала пропатчить сами сорсы, так как это делает Delphi IDE. А то что Вы описали я делал, но увы без добавления в USES секцию юнитов еврики это ничего не даст.
 

Andrik7503


Рег
19 Jul, 2016

Тем
0

Постов
6

Баллов
6
  • 09, Sep 2016
  • #37
поставил Eurekalog 7.4 но увы в Project не появился пункт хотя до этого ставил на xe6 - там точно был такой пункт на офиц.

сайте почитал - должно поддерживать XE10.1

инсталляция/деинсталляция не привели к успеху

а их приложение ManageProfiles.exe не показывает моё XE10.1, хотя по идее там должно отображать в каких IDE прописался этот Eurekalog

подскажите - может кто сталкивался с подобным?

или может есть более хорошие логеры?

хотя мне по-факту Eurekalog мне нужен как отлавливатель утечек памяти
 

kolio


Рег
22 May, 2009

Тем
4

Постов
16

Баллов
56
  • 09, Sep 2016
  • #38
kolio, post: 720600:
приложение ManageProfiles.exe не показывает моё XE10.1
Несложно сообразить, что это означает, что в 7.4 (вышла 26 января) поддержки 10.1 (вышла в апреле) - нет. Машину времени ещё не изобрели. 10.1 поддерживается в 7.5.
kolio, post: 720600:
Eurekalog мне нужен как отлавливатель утечек памяти
Нафига для этого EurekaLog-то? Чтобы отчёты отправлять? Для отладки памяти локально FastMM в отладочном режиме даст намного больше.
 

JCDenton


Рег
15 Feb, 2013

Тем
1

Постов
15

Баллов
25
  • 15, Sep 2016
  • #39
Недавно искал утечку и перепробовал CodeGuard, FastMM, EurecaLog. По-моему наиболле эффективна для вашего случая связка CodeGuard and FastMM
 

Keoda


Рег
19 Nov, 2014

Тем
1

Постов
18

Баллов
28
  • 28, Oct 2016
  • #40
Eurekalog мне нужен как отлавливатель утечек памяти
Оно мне вообще не понравилось, у меня mdi приложение и я по созданию child форму создаю компонент, а при закрытии формы удаляю, он видит это как утечку, после его удаления, еле заставил работать свой проект
 

tarakan19832


Рег
12 Aug, 2016

Тем
3

Постов
7

Баллов
37
  • 29, Oct 2016
  • #41
C помощью чего все же локально лучше отслеживать утечку памяти в проекте FastMM или EL (D7)? Сама проблема возникает не постоянно: после компиляции и закрытии приложения
 

Kovryga


Рег
10 Aug, 2007

Тем
0

Постов
7

Баллов
7
  • 30, Oct 2016
  • #42
EurekaLog - это трейсер исключений.

Это означает, что диагностика проблем с памятью - его побочная функциональность.

Иными словами, любой строго специализированный инструмент для памяти будет мощнее. Во-вторых, любой трейсер исключений предназначен для сбора отчёта на машинах пользователя.

Это означает, что в трейсерах исключений используются "достаточно быстрые" методы, чтобы не слишком замедлять работу программы - в отличие от любых локальных инструментов, которые могут использовать мощные и медленные средства отладки на машине разработчика.

Нахрена локально использовать трейсер, если есть отладчик?

он видит это как утечку
Я сильно сомневаюсь, что фильтр к менеджеру памяти способен генерировать ложные сообщения об утечках. Скорее всего, утечка всё же была.
 

JCDenton


Рег
15 Feb, 2013

Тем
1

Постов
15

Баллов
25
  • 07, Dec 2016
  • #43
EurekaLog was applied. Then, sometimes the program hangs or does not work normally. Depending on the option change, a behavioral problem occurs. Setting the best option is too difficult.
 

yyjksw


Рег
17 Jul, 2008

Тем
0

Постов
13

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно