On Wed, 03 Feb 2010, Lorenzo Fiorini wrote:

Hi,

> > Try to use valgrind instead of GDB to detect memory corruption.
> Attached the valgrind log.

==30772== Invalid read of size 1
==30772==    at 0x41A7121: hb_vmExecute (hvm.c:1231)
[...]
==30772==  Address 0x52794e3 is 35 bytes inside a block of size 41 free'd
==30772==    at 0x4025DFA: free (vg_replace_malloc.c:323)
==30772==    by 0x419B3D3: hb_xfree (fm.c:900)
==30772==    by 0x41909B0: hb_hrbUnLoad (runner.c:291)
==30772==    by 0x41D76D9: hb_vmProc (hvm.c:5744)
==30772==    by 0x41A953B: hb_vmExecute (hvm.c:1617)

You are freeing directly or indirectly HRB module which is currently
executed. HRB modules are unloaded automatically when all references to
pHRB variable returned by hb_hrbLoad() are cleared.
Fix you code to keep HRB module alive as long as it is used.

best regards,
Przemek
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to