Catching memory leaks, redux

I tried to discuss things, that I’ve missed last time.

That annoying “Source file not found” dialog

If you don’t have Enterprise edition of EurekaLog (the one, that comes with sources) – sometimes you may encounter “Source file not found” dialog. This article explains what it is and what you can do with it.

Tips & Tricks in EurekaLog, part 1

Many our customers often ask trivial questions about how to do different things with EurekaLog. Well, we have a bit of documentation (chm-file and online one), which describes some public internals, which you can use to customize default behavior. Apparently, this is “dictionary”-like style documentation. In order to use it, you must study all pieces and then come with some way of putting them together to get the desired behavior. Looks like this is too much work for many people, as they continue to ask trivia questions like “My application runs in unattended environment. How can I disable EurekaLog’s dialog?”.

So, I’ve planned few posts about typical usage cases and how you can implement them. This will be sort of Q&A/FAQ-style articles. There are simple questions and answers on them. Answers usually include changing project options or writing a simple bits of code (usually events handlers). Here goes part one.

Getting support from EurekaLog team

This one post describes where you can get support from EurekaLog team. And how to avoid common mistakes, that may slow down processing of your request. May be it contains few complaints from me, but I tried to avoid them :D

Check your Delphi’s installation – it may be infected

If you have strange unexplained runtime error 3 on some machines – read this post immediately! If you haven’t – check it out anyway.
There is a virus, that infects Delphi installations, so any application, compiled in infected Delphi, will be also infected.

(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.

How to read bug-reports

Well, recently I’ve noticed that there are many people, who have certain difficulties with reading and/or understanding bug-reports. There are many related questions both on support and forums. While it is quite surprising for me, it looks like there is a problem, which need to be solved.

Catching memory leaks

Before return to discussion of other ways to catch “bad” pointers – I wanted to talk about memory leaks and tools for its diagnostics. As we’ll see later, this topic is very close related to our previous talk.

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 post mostly for newbies.

Why should you always use FreeAndNil instead of Free.

The subject is actually speaks for itself. I want to discuss the idea of using FreeAndNil everywhere instead of Free. Give proper arguments to this idea and consider, how EurekaLog fits here too.

Optimal project settings

Today I want to discuss a different project’s settings, which can affect debugging and reporting in your Delphi application.

EurekaLog for Shareware developers

Today I want to browse EurekaLog’s features that is related to shareware developers.

Compiling from the Command Line

One of the areas where questions often arise is in compilation from the command line. So I thought we would have a closer look at how command line compilation works, why it is needed and what the various options are available when you need to use it.

EurekaLog’s anti-freeze feature

As you know, EurekaLog is a great tool to catch exceptions in your application. Though there are some cases which you want to consider as “bugs”, but there is no exception to catch it!
For example, consider your application is deadlocking. How about endless cycle which loads CPU core up to 100%? What about do not updating your UI for 10 minutes? Are those issues bugs or not?
Yes, all these cases are bugs in your application. But no exception is raised in such cases – your application simply stops working. Those cases can be very nasty and hard to diagnose, because your application doesn’t show any error message and doesn’t generate any log files.

So, how can you catch them?

Integrating SmartInspect and EurekaLog

[Link to external resource]
Integrating SmartInspect’s logging capabilities and EurekaLog’s exception reporting mechanism is a great way to improve the reliability of your Delphi applications. Used together, these two tools allow you to easily report and solve errors that your customers and users experience.