Showing posts with label best practice. Show all posts
Showing posts with label best practice. Show all posts

08 November, 2025

Managing local bug reports by bug reports file rotation

EurekaLog can store bug reports locally - in a text file. This file is used both as a log and as a database. Each exception will be appended to the local bug report file. Some users want to know how to set up bug report file rotation. Log rotation is the automated process of managing log files to prevent them from growing too large, which can impact system performance and storage. It involves doing something with old log files (compressing, archiving, renaming, or deleting) and creating a new, empty one to continue recording new events.

This article will discuss what options you have for EurekaLog's local bug reports file.

13 May, 2025

"Invalid EurekaLog configuration found" error

Users of recent EurekaLog versions could receive the "Invalid EurekaLog configuration found" error message when they run their EurekaLog-enabled applications. The message looks like this:
Invalid EurekaLog configuration found.

Exception from the following module:
full-file-name-to-your-EXE-or-DLL
was catched in the following module:
full-file-name-to-your-DLL-or-EXE
Both modules have EurekaLog enabled, but EurekaLog code is not shared.

This is essentially the same error as:
- "Can''t assign a TFont to a TFont";
- "Invalid class typecast";
- reInvalidCast;
- "Run-time error 10".
etc.

Possible solutions:
- Do not allow exceptions from one module escape into another (recommended)
- Compile DLLs with Lightweight DLL profile, so your DLL will not have EurekaLog's code
- Compile EXE and DLL with run-time packages, so EXE and DLL will share EurekaLog's code

See our help for more information:
https://www.eurekalog.com/help/eurekalog/dll_using_eurekalog.php

27 January, 2025

Disable visual error dialogs for background apps

Typically, background applications run as system services. In this case, fatal errors cause the application to close and possibly restart automatically if specified in the service's settings.

But sometimes, for some reason, you may want to make a background application as a regular user application. In this case, you would not want your application to show any error messages.

07 December, 2023

Beware of secondary exceptions

We were contacted by a client who complained that EurekaLog was generating an error report in the wrong place. In fact, the client had an expected exception that he wanted to hide by showing a simple message instead. The client kindly showed his code:
try
  Query.Delete; // - an exception is raised here
except
  Query.Transaction.Rollback;
  ShowMessage('Sorry, could not delete the report');
  Exit;
end;
What's happening? Does EurekaLog really ignore user code?

06 September, 2023

Creating an API (contract) for your own DLL

Or: don't create your own DLLs without reading this article!


This article is not about EurekaLog, but about writing your own DLLs in general. This article is based on questions on the forums: "How do I return a string from a DLL?", "How do I pass and return an array of records?", "How do I pass a form to a DLL?".

So that you do not spend half your life figuring it out - in this article I will bring everything on a silver platter.

Important note: the article must be read sequentially. Code examples are given only as examples: the code of examples is added with new details at each step of the article. For example, at the very beginning of the article there is no error handling, "classic" methods are used (such as using GetLastError, the sdtcall convention, etc.), which are replaced by more adequate ones in the course of the article. This is done for the reason that "new" ("unusual") designs do not raise questions. Otherwise, with each example, one would have to insert a note like: "this is discussed in that paragraph below, but that - in this one here." In any case, at the end of the article there is a link to the sample code written by taking into account everything said in the article. You can just grab it and use it. And the article explains why it is created the way it is. If you are not interested in "why" - scroll to the end to the conclusion and find a link to download the example.

11 May, 2022

Why it is recommended to restart the application after a crash

We were contacted by a client complaining that EurekaLog was hiding his application.

06 November, 2018

How to deal with send failures in EurekaLog

You (as developer) is interested in getting as much bug reports as possible. First, you have to select a reliable send method for delivering reports from users to you. However, it may be not enough. Sending may fail for many reasons:
  • Unplugged network cable;
  • Turned off wi-fi;
  • Bad wi-fi signal strength;
  • Bad network settings (e.g. DNS, gateway, etc.);
  • Blocked by firewall;
  • Problems on ISP's side (maintenance, etc.);
  • Changed settings on your receiving side (e.g. you have closed account in your bug tracker);
  • etc.
Bug report will not reach you in all these cases. Then what?

03 June, 2013

12 December, 2012

Working with exceptions in DLLs

This article will describe pitfalls and "gotcha"s for using and handling exceptions in DLLs. It will also discuss using exception tracer tools in DLLs.

01 December, 2010

ITDevCon sessions from EurekaLab s.a.s.

There was a ITDevCon conference recently - 17-19th November 2010. I (Alex) took two sessions on this event: "Advanced features of Delphi's debugger" and "How to debug application's crash".

I had prepared two presentations for these sessions in OpenOffice Impress and some accompanied text in OpenOffice Writer for this event. And I thought that you may be interested in those materials, so I decided to publish them.

You can download both sessions in one archive here.

Download EurekaLog | Purchase License | Contact Support

08 June, 2010

SDN sessions from EurekaLab s.a.s.

There was a SDN event recently - 18th May 2010. Fabio Dell'Aria took two sessions on this event: "How to find the exception source line of a just delivered software" and "How to prevent source code bugs and speed-up the testing phase".

30 March, 2010

Memory problems in Delphi apps - final article

I've published several articles already, which cover different aspects of memory's issues. I'm going to give a short review of these articles first and then finish this series with current article. If you didn't read my previous articles or if you're a newbie - I recommend to read them from first to last before you'll start reading this one.

16 February, 2010

11 August, 2009

(Re)Installation of EurekaLog

The new RC is going out today, so I decided that it’s perfect time to write about (re)installation process. Some of you may have troubles with it, while most other don’t.

12 May, 2009

Access Violation in details

Exception of class EAccessViolation is most common error in Delphi applications. Today I want to discuss it, its reasons and how to deal with it. This article is mostly for beginners, so it can contain not very accurate phrases.

28 April, 2009

Why should you always use FreeAndNil instead of Free

Today I want to discuss the idea of using FreeAndNil routine instead of Obj.Free.

21 April, 2009

Optimal project settings

Today I want to discuss various project's options, related to debugging.