Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zugriffsverletzung nach Application.Run (https://www.delphipraxis.net/143626-zugriffsverletzung-nach-application-run.html)

bksoft 19. Nov 2009 19:01


Zugriffsverletzung nach Application.Run
 
Hallo,

ich habe manchmal eine Zugriffsverletzung beim Beenden meiner Anwendung.
Der Fehler ist immer der selbe: Modified byte offsets (and lengths): 12(1)

################################################## ######################

FastMM has detected an error during a free block scan operation. FastMM detected that a block has been modified after being freed.

Modified byte offsets (and lengths): 12(1)

The previous block size was: 56

This block was previously allocated by thread 0x860, and the stack trace (return addresses) at the time was:
40334A [system.pas][System][@GetMem][1227]
403BED [system.pas][System][TObject.NewInstance][3482]
403FE6 [system.pas][System][@ClassCreate][4158]
4846FF [LMDTimer][TLMDThreadedTimer.Create]
48484E [LMDTimer][TLMDHiTimer.UpdateTimer]
484745 [LMDTimer][TLMDHiTimer.SetEnabled]
53BBD1 [IO1.PAS][Io1][TForm1.Init_Velleman_K8055USB_1][13851]
53B866 [IO1.PAS][Io1][TForm1.Menu_Velleman_K8055USBClick][13796]
451FFA [Menus.pas][Menus][TMenuItem.Click][1740]
45369C [Menus.pas][Menus][TMenu.DispatchCommand][2446]
45DA86 [Forms.pas][Forms][TCustomForm.WMCommand][4032]

The block was previously used for an object of class: TLMDThreadedTimer

The allocation number was: 78542

The block was previously freed by thread 0x668, and the stack trace (return addresses) at the time was:
403362 [system.pas][System][@FreeMem][1239]
403C1A [system.pas][System][TObject.FreeInstance][3506]
404031 [system.pas][System][@ClassDestroy][4197]
41E5F5 [Classes.pas][Classes][TThread.Destroy][7402]
403C8B [system.pas][System][TObject.Free][3530]
41E4EA [Classes.pas][Classes][ThreadProc][7376]
404A4A [system.pas][System][ThreadWrapper][5606]
77E7B3BC [lstrcmpiW]

The current thread ID is 0x860, and the stack trace (return addresses) leading to this error is:
40C758 [FastMM4.pas][FastMM4][CheckBlocksOnShutdown][7981]
40D49A [FastMM4.pas][FastMM4][FinalizeMemoryManager][9045]
40D4E2 [FastMM4.pas][FastMM4][Finalization][9126]
4046F6 [system.pas][System][FInitUnits][5122]
404945 [system.pas][System][@Halt0][5516]
552C02 [progname][initialization]
77E989D5 [ProcessIdToSessionId]

################################################## ######################

sieht so aus als kommt das vom LMD Timer.
Use Thread vom Timer ist auf true, dann erhalte ich "manchmal" den Fehler beim beenden.
Ist Use Thread auf false gibt es kein Fehler, ich brauche aber einen threaded hitimer :(

Hat jemand ne Idee was man da machen kann?

Grüsse,
Bernd

Bernhard Geyer 19. Nov 2009 19:55

Re: Zugriffsverletzung nach Application.Run
 
Werden die Threads auch vor dem normalen Beendungsprozess der Anwendung explizit geschlossen. Falls man den "normalen" Aufräumprozess der VCL verwendet gibt es ab und zu Probleme (unabhängig jezt von den LMD Kompos).

bksoft 20. Nov 2009 20:30

Re: Zugriffsverletzung nach Application.Run
 
Zitat:

Zitat von Bernhard Geyer
Werden die Threads auch vor dem normalen Beendungsprozess der Anwendung explizit geschlossen. Falls man den "normalen" Aufräumprozess der VCL verwendet gibt es ab und zu Probleme (unabhängig jezt von den LMD Kompos).

Ich selbst benutze keine Threads! Nur evtl. verwendete externe Komponenten wie hier der HiTimer.

Übrigens werden alle Timer bei OnClose disabled und nach einem kleinen
"MyDelay mit processmessages" die OnTimer Procedure(n) auf nil gesetzt.

Im Moment überlege ich das Close Problem mit einem dirty Trick zu lösen:
Merker setzen wenn ein treaded timer enabled wird
(das Problem taucht hier nur auf wenn ein threaded Timer im Einsatz war),
dann bei close als letzte Zeile:
if bHiTimer then ExitProcess(0);

Ich weiss das ist nicht schick, aber was tun sprach Zeus!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz