On 12/06/2012 14:14, Antonio Fortuny wrote:
there is a button "resolve". select the exe that leaked. it is a new
feature. it SHOULD resolve any address for which symbols exist
But it does not really :-\
I've prepared a new virtual machine with W7-Win32
Lazarus full 1.1 from 2012-06-11 + WinCE for cross-compile
Made a very simple project (one form, two buttons one to create a
memory leak, one to close)
Redirect heaptrc output to a file
Set compiler options for compiler and linker:
-g automatic debugger
-gl add line numbers
-gh use heaptrc
-WG win32 program
compile, link and run and get this:
/*c:\sources\compiled\TestUib.Exe *//*
Call trace for block $001D62B0 size 16*/ <<======== my block, looks OK
/* $0040D628
$004FAA4E TCONTROL__CLICK, line 2735 of ./include/control.inc
*/the result whether I use -gs or -g. I can easily guess that both
blank lines with only an address are the two lines of my project
I've installed leakview but the Resolve button resolves anything with
the project.exe
Thea ddress /*$0040D628*/ corresponds to the function Reallocmem
function used to get the memory block
can you try
gdb.exe /*c:\sources\compiled\TestUib.Exe*/
info line *0x0040D628
The whole thing is rather odd. From what you described, you done the
correct steps. And it works, if I do it here (vista 32 bit). Though I
use the released fpc 2.6.0 (that may still be an idea)
I can only see 2 reasons.
1) For some reason, fpc did not write or link symbol info for your unit.
2) The stabs reader in fpc has problems reading it ("resolve" uses the
same reader)
In case 2 gdb should be able to read it.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus