[Lazarus] Access violation in SYSGETMEM_FIXED - memory corruption?
cobines
cobines at gmail.com
Thu May 26 21:47:47 CEST 2011
Hello.
I have been experiencing weird behaviour, usually my program crashes
with a backtrace printed, sometimes simply just quits. In GDB I always
catch SIGSEGV. The prevalent thing is that always at the top of the
backtrace there is SYSGETMEM_FIXED:
TApplication.HandleException Access violation
Stack trace:
$0040DE82 SYSGETMEM_FIXED, line 925 of F:/devel/fpc/2.5.1/rtl/inc/heap.inc
$00421F07 TFRMFILEASSOC__EDTICONFILENAMECHANGE, line 63 of ffileassoc.pas
$0050B54E TCUSTOMEDIT__CHANGE, line 512 of ./include/customedit.inc
$0050B4E0 TCUSTOMEDIT__TEXTCHANGED, line 505 of ./include/customedit.inc
$004D780A TCONTROL__CMTEXTCHANGED, line 754 of ./include/control.inc
$0040AD96 TOBJECT__DISPATCH, line 592 of
F:/devel/fpc/2.5.1/rtl/inc/objpas.inc
$004CF8BF TWINCONTROL__WNDPROC, line 5241 of ./include/wincontrol.inc
$004D8128 TCONTROL__PERFORM, line 1083 of ./include/control.inc
$004DDE86 TCONTROL__REALSETTEXT, line 4152 of ./include/control.inc
$004D4CC2 TWINCONTROL__REALSETTEXT, line 8002 of ./include/wincontrol.inc
$0050B337 TCUSTOMEDIT__REALSETTEXT, line 468 of ./include/customedit.inc
$004DDFA9 TCONTROL__SETTEXT, line 4177 of ./include/control.inc
$00421EB0 TFRMFILEASSOC__BTNADDNEWTYPECLICK, line 58 of ffileassoc.pas
$004D9E46 TCONTROL__CLICK, line 2288 of ./include/control.inc
$0050D42F TBUTTONCONTROL__CLICK, line 62 of ./include/buttoncontrol.inc
$0050DA56 TCUSTOMBUTTON__CLICK, line 174 of ./include/buttons.inc
$0050DFA1 TBUTTON__CLICK, line 341 of ./include/buttons.inc
$0050D9D3 TCUSTOMBUTTON__EXECUTEDEFAULTACTION, line 149 of
./include/buttons.inc
$00420835 TAPPLICATION__DORETURNKEY, line 2039 of ./include/application.inc
$004201B5 TAPPLICATION__CONTROLKEYUP, line 1650 of ./include/application.inc
$004D0B02 TWINCONTROL__CONTROLKEYUP, line 5889 of ./include/wincontrol.inc
$0050D81D TCUSTOMBUTTON__CONTROLKEYUP, line 73 of ./include/buttons.inc
$004D0838 TWINCONTROL__DOREMAININGKEYUP, line 5786 of
./include/wincontrol.inc
$004D2BE7 TWINCONTROL__WMKEYUP, line 7151 of ./include/wincontrol.inc
$0040AD96 TOBJECT__DISPATCH, line 592 of
F:/devel/fpc/2.5.1/rtl/inc/objpas.inc
$004CF8BF TWINCONTROL__WNDPROC, line 5241 of ./include/wincontrol.inc
$00522197 DELIVERMESSAGE, line 110 of lclmessageglue.pas
$004F0A9B WINDOWPROC, line 2556 of win32callback.inc
$0051F44B BUTTONWNDPROC, line 1575 of win32wsstdctrls.pp
$7E368734
$7E368816
$7E3689CD
$7E368A10
$004F3415 TWIN32WIDGETSET__APPPROCESSMESSAGES, line 383 of win32object.inc
$0041F309 TAPPLICATION__HANDLEMESSAGE, line 1229 of ./include/application.inc
$0041F72F TAPPLICATION__RUNLOOP, line 1362 of ./include/application.inc
$00422163 TWIDGETSET__APPRUN, line 49 of ./include/interfacebase.inc
$0041F6E5 TAPPLICATION__RUN, line 1350 of ./include/application.inc
$00402B0A main, line 16 of project1.lpr
If I use ShortString instead of AnsiString (remove {$H+}) there is no
crash, which leads me to believe there is something wrong with memory
allocation of strings.
I have shortened the program and now it is so simple I can't find
anything wrong with it.
These crashes happen on Windows XP SP3 i386. On Linux i386 no crashes.
I ran with Valgrind memcheck and it didn't detect anything wrong.
However when I include "cmem" unit I get this:
*** glibc detected *** ./project1: double free or corruption
(fasttop): 0x09829d18 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6(+0x6aaa1)[0xb7325aa1]
/lib/i686/cmov/libc.so.6(+0x6c308)[0xb7327308]
/lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb732a3bd]
./project1[0x807cdbf] <CREALLOCMEM+79>: 0x8908c483
./project1[0x8071cd8] <REALLOCMEM+8>: 0x26b48dc3
./project1[0x808fad7] <EDTICONFILENAMECHANGE+71>: 0xe8cc458b
./project1[0x81e8f3c] <TCUSTOMEDIT__CHANGE+44>: 0xf689c3c9
./project1[0x81e8ec7] <TCUSTOMEDIT__TEXTCHANGED+391>: 0xe85254e8
./project1[0x819c7ba] <TCONTROL__CMTEXTCHANGED+26>: 0x748dc3c9
./project1[0x806d3b6] <TOBJECT__DISPATCH+150>: 0xf73926eb
./project1[0x81949ce] <TWINCONTROL__WNDPROC+814>: 0xc9e05d8b
./project1[0x819d056] <TCONTROL__PERFORM+70>: 0x89ec458b
./project1[0x81a2fe2] <TCONTROL__REALSETTEXT+146>: 0xecb139e8
./project1[0x8199cee]
./project1[0x81e8d27]
./project1[0x81a3104]
./project1[0x808fa80]
./project1[0x819ee77]
./project1[0x81ebdef]
./project1[0x81ec4cf]
./project1[0x81ec9f1]
./project1[0x81ec44f]
./project1[0x808ce2c]
./project1[0x808bf51]
./project1[0x8195b82]
./project1[0x81ec2cd]
./project1[0x81958e8]
./project1[0x8197d67]
./project1[0x806d3b6]
./project1[0x81949ce]
./project1[0x82260b9] <TQTWIDGET__DELIVERMESSAGE+121>: 0x8bfc458b
./project1[0x8222c10] <TQTWIDGET__SLOTKEY+640>: 0x0875c085
./project1[0x8221dbc] <TQTWIDGET__EVENTFILTER+940>: 0x840cc483
/usr/local/lib/libQt4Pas.so.5(_ZN12QObject_hook11eventFilterEP7QObjectP6QEvent+0x2b)[0xb76d4ebb]
/usr/lib/libQtCore.so.4(_ZN23QCoreApplicationPrivate29sendThroughObjectEventFiltersEP7QObjectP6QEvent+0x96)[0xb50af116]
So far I tried:
- Lazarus trunk + FPC trunk
- Lazarus trunk + FPC 2.4.2
- Lazarus fixes_0_9_30 + FPC 2.4.2
I have already scanned memory with memtest86 - no errors.
Could someone try it on their system?
I have attached the application. Run it and press "Add" button a few times.
Thanks.
--
cobines
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fileassoc_crash.zip
Type: application/zip
Size: 2625 bytes
Desc: not available
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20110526/a0934c03/attachment-0002.zip>
More information about the Lazarus
mailing list