We will talk about the VirtualMM debugging memory manager. What it is, when to use it, when not to use it, how to use it, where to download it, how to configure it, and so on.
This article assumes that you are familiar (at least in general terms) with the concepts of address space, memory page, RESERVE, and COMMIT.
Showing posts with label technical. Show all posts
Showing posts with label technical. Show all posts
29 October, 2025
28 August, 2025
EurekaLog and Windows Service Applications
We were contacted by a customer who wondered how EurekaLog works in service applications, considering it has options like freeze detection, while service apps don't have main thread.
11 May, 2025
Using EurekaLog with GMail (Google Mail) after May 1, 2025 and after May 14, 2025
Google has announced that it’s disabling the less secure apps, third-party apps, or devices that ask you to sign in to your Google Account with your username and password on Google Workspace accounts from May 1st or May 14, 2025:
Starting March 14, 2025, you and your users must use OAuth with third-party apps to access Gmail, Google Calendar, and Google Contacts.You will no longer use a password for access (with the exception of app passwords). Google is turning off access to less secure apps—non-Google apps that can access Google Accounts with a username and password (basic authentication).
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.12 August, 2023
What can you do with the "Assember" tab in bug reports? Is it even useful?
We were contacted by a customer that claimed that his application worked fine until he added EurekaLog to it. Specifically, his application starts to raise an
EAccessViolation exception with the following message:Access violation at address 03DB472F in module 'Sample.exe'. Read of address 5653E4CC26 July, 2023
Does EurekaLog support CLang/LLVM/64-bit?
Short Answer
Yes, EurekaLog supports CLang and LLVM in both 32 and 64 bits - with some limitations. Exception is the very recent "Windows 64-bit (Modern)" platform, which was added into the RAD Studio 12 Athens since the major 12.1 update. The "Windows 64-bit (Modern)" platform is not supported yet.16 May, 2022
Using EurekaLog with GMail (Google Mail) after May 30, 2022
Google has announced that it’s disabling the Less Secure Apps feature on some Google accounts from May 30th, 2022:
To help keep your account secure, starting May 30, 2022, Google will no longer support the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password.
27 July, 2021
Working with cryptography in EurekaLog
EurekaLog is an exception tracer, i.e. a tool that installs hooks and catches exceptions being thrown, allowing you to generate a report on unhandled exceptions. However, it does provide various kinds of additional functionality that you can use in your apps. And one of those features is cryptography functions.
22 February, 2021
EurekaLog + VirusTotal = unforeseen consequences
We were contacted by a person who reported unforeseen consequences of uploading EurekaLog-enabled application to the VirusTotal service.
It was like this: the client compiled an application with EurekaLog. The application was configured to send bug reports by e-mail. He uploaded the compiled application to the VirusTotal website, and got a scan result that everything is fine.
So far, everything is quite typical. The strange things started the next day, when the client received an e-mail with bug report from EurekaLog. The weird thing was that the client did not launch the application, and he did not distribute/deploy it. And the report itself looked... unusual.
It was like this: the client compiled an application with EurekaLog. The application was configured to send bug reports by e-mail. He uploaded the compiled application to the VirusTotal website, and got a scan result that everything is fine.
So far, everything is quite typical. The strange things started the next day, when the client received an e-mail with bug report from EurekaLog. The weird thing was that the client did not launch the application, and he did not distribute/deploy it. And the report itself looked... unusual.
03 February, 2021
EurekaLog causes EOutOfResources (Out of system resources)?
We were contacted by a person who complained that his application was working fine until he added EurekaLog to it. An "Out of system resources" exception was raised after adding EurekaLog to project. The exception occurred inside the
OutOfResources helper function from the Vcl.Graphics unit.24 December, 2020
Even empty applications have bugs
We were contacted by a person who claimed to have found a bug in EurekaLog. He justified this statement as follows: if you create a new DataSnap application and add EurekaLog to it, the application will crash with Access Violation on exit.
19 November, 2020
EurekaLog causes Integer Overflow?
We were contacted by a person who complained that his application was working fine until he added EurekaLog to it. An Integer Overflow exception was raised after adding EurekaLog to project. The exception occurred inside the
_UStrCatN function (it is a function for concatenating multiple strings in RTL).09 October, 2020
EurekaLog causes AccessViolation?
We were contacted by a person who complained that his application was working fine until he added EurekaLog to it. An AccessViolation exception was raised after adding EurekaLog to project. The message was: "Access violation at address 00E15025 in module 'Project.exe'. Read of address 83EC8B69". And the stack was:
- Contoso.pas TContosoEventMessage.BasePerform
- Vcl.Forms.pas TApplication.WndProc
- System.Classes.pas StdWndProc
- Vcl.Forms.pas TApplication.HandleMessage
- Vcl.Forms.pas TApplication.Run
- Project.dpr Initialization
21 August, 2020
Why is EurekaLog's call stack drawn in different colors?
Do you know what the different colors in the callstack mean?

09 March, 2020
How to find out why your application suddenly closes?
Sometimes there are cases when your application just silently exits, and you have no idea why. How can you diagnose such issues?
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.
29 October, 2018
Sending e-mails with EurekaLog
EurekaLog's code can be used to easily send arbitrary e-mails from your code.
11 May, 2017
Using Threads Snapshot tool as postmortem debugger
This article will show you how to register and use Threads Snapshot tool to capture call stacks of unhandled exception crash of any process.
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.
Subscribe to:
Posts (Atom)