View Full Version : Strange...
Marcel
10-Oct-2011, 12:00 PM
Working with Delphi 2005 and Eurekalog 6.0.1.3.
When I trap memory leaks in Eurekalog, my application runs fine.
If I don't trap memory leaks, the application crashes !
If I deactivate Eurekalog, it crashes too !
Amazing, no ?
Is there any explanation ?
Thank you for your support and your great product.
Kevin G. McCoy
10-Oct-2011, 03:14 PM
On 10/10/2011 4:34 AM, Marcel wrote:
Working with Delphi 2005 and Eurekalog 6.0.1.3.
When I trap memory leaks in Eurekalog, my application runs fine.
If I don't trap memory leaks, the application crashes !
If I deactivate Eurekalog, it crashes too !
Amazing, no ?
Nope :-)
Is there any explanation ?
Some types of uninitialized variable bugs can be masked by shifting your EXE memory footprint. If the uninitialized variable is filled with *reasonable* random junk, then your program works. If, due to changes in your program that move it around in memory and the same variable is now filled with *unreasonable* random junk, then your program behaves badly.
EL is simply pushing portions of your EXE higher in memory. If it wasn't EL, then something else that caused the same shift could do the same thing.
You need to find out where the program crashes and look backwards from there. The spot where it crashes is probably not where the problem is. You need to find our which variable is causing the problem and that can be anywhere.
Good hunting!
Kevin G. McCoy
Marcel
11-Oct-2011, 08:43 AM
Thank you Kevin for your answer.
I can now imagine the work that I have to do...
Thank you :-((
On 10/10/2011 4:34 AM, Marcel wrote:
Working with Delphi 2005 and Eurekalog 6.0.1.3.
When I trap memory leaks in Eurekalog, my application runs fine.
If I don't trap memory leaks, the application crashes !
If I deactivate Eurekalog, it crashes too !
Amazing, no ?
Nope :-)
Is there any explanation ?
Some types of uninitialized variable bugs can be masked by shifting your EXE memory footprint. If the uninitialized variable is filled with *reasonable* random junk, then your program works. If, due to changes in your program that move it around in memory and the same variable is now filled with *unreasonable* random junk, then your program behaves badly.
EL is simply pushing portions of your EXE higher in memory. If it wasn't EL, then something else that caused the same shift could do the same thing.
You need to find out where the program crashes and look backwards from there. The spot where it crashes is probably not where the problem is.
You need to find our which variable is causing the problem and that can be anywhere.
Good hunting!
Kevin G. McCoy
Alex
19-Oct-2011, 11:00 AM
Hi,
This sounds like a memory problem and Kevin was correct that slightest changes in application can hide or reveal a memory issue.
I can suggest don't turn off EurekaLog and its memory filter. Sooner or later you'll catch that error.
Or you can try to use other tool. For example, try to use FastMM in full debug mode or SafeMM.
Alternatively, you can reproduce bug in the debugger? If yes, then you can just debug it.
vBulletin® v3.8.2, Copyright ©2000-2013, Jelsoft Enterprises Ltd.