Forum > General

"Ghost Lining"

<< < (2/3) > >>

marcov:

Run a riot!  Compile with all checks enabled "-CRriot -gt"

RedOctober:
Ya, it's totally weird.  Thanks for the tip about the external debug file. I'm going to use that. 

Mr.Madguy:
This is floating bug. It's most likely caused by heap corruption. It depends on what is corrupted. And as memory layout can be different for 32bit and 64bit, debug and release, different OS versions - this bug can appear and disappear in different environments, depending on how critical corrupted data is. It's one of hard to debug bugs. In most cases it should be debugged via so called exclusion method, where some parts of code are excluded in order to find exact place, where bug happens.

But you can always try to use pure ASM debugger and try to debug release version. Linker should usually be able to build memory map file. Run release version of program in debugger. Notice address, where bug happens. Use memory map file to find exact routine, where it happens.

And yeah. Use external debug file, if possible.

MarkMLl:

--- Quote from: jamie on December 04, 2021, 12:08:25 am ---What he describes almost sounds like fail of a final buffer purge at the end of linking period ?

 I think this would only cause a Resource error though so it can't be that.

 oh well.

--- End quote ---

Don't "oh well" yourself, it's a valid suggestion. OTOH I find it difficult to tie in with the problem affecting both Delphi and Lazarus.

MarkMLl

MarkMLl:

--- Quote from: Mr.Madguy on December 04, 2021, 07:27:02 am ---This is floating bug. It's most likely caused by heap corruption. It depends on what is corrupted. And as memory layout can be different for 32bit and 64bit, debug and release, different OS versions - this bug can appear and disappear in different environments, depending on how critical corrupted data is.

--- End quote ---

Also the fact that it apparently affects both Delphi and Lazarus, which can be reasonably expected to have different heap layouts.

BUT... that in itself is a valuable clue: it implies that it's something being done by the program itself, rather than by the linker or underlying libraries since if they were at fault the problem would be unlikely to manifest itself in the same way.

MarkMLl

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version