Hallo!
Wir haben unsere Anwendung von Delphi 2010 auf XE 3 umgestellt. Seit dem haben wir an scheinbar zufδlligen Stellen im Programm
Access Violations. Ich kann mir da nicht den geringsten Reim drauf machen. Ich habe die Vermutung, dass die Fehler nur in Formularen auftreten, die ein TClientDataSet beinhalten. Aber das ist Spekulation.
Ich hab nun FastMM mit dem FullDebugMode installiert. Allerdings kann ich mit der Ausgabe so gar nichts anfangen. Kann mir vielleicht jemand auf die Sprόnge helfen?
Das sieht dann z.B. so aus:
Zitat:
---------------------------
sofhie.exe: Memory Error Detected
---------------------------
FastMM has detected an error during a FreeMem operation. The block footer has been corrupted.
The block size is: 39
This block was allocated by thread 0x960, and the stack trace (return addresses) at the time was:
4069D1
40DDF9
40DF2A
6E54FD [Data.DB][Data][Data.DB.TStringField.GetValue]
6E53D7 [Data.DB][Data][Data.DB.TStringField.GetAsVariant]
AB6BAD [cxDB.pas][cxDB][cxDB.GetFieldValue][395]
AC1118 [cxDBData.pas][cxDBData][cxDBData.TcxValueDefDBReader.GetValue][3398]
90F02E [cxDataStorage.pas][cxDataStorage][cxDataStorage.TcxDataStorage.ReadRecord][2340]
97FBCE [cxCustomData.pas][cxCustomData][cxCustomData.LoadData][8627]
97FD52 [cxCustomData.pas][cxCustomData][cxCustomData.TcxCustomDataController.LoadStorage][8666]
AC4895 [cxDBData.pas][cxDBData][cxDBData.TcxDBDataController.LoadStorage][5164]
The block is currently used for an object of class: Unknown
The allocation number is: 2091660
The block was previously freed by thread 0x960, and the stack trace (return addresses) at the time was:
40697E
40B6B5
6E0D2C [Data.DB][Data][Data.DB.TNamedItem.HashName]
41A4B0 [FastMM4.pas][FastMM4][FastMM4.DebugFreeMem][8893]
41A4C5 [FastMM4.pas][FastMM4][FastMM4.DebugFreeMem][8900]
40697E
40B6B5
6E0D2C [Data.DB][Data][Data.DB.TNamedItem.HashName]
7738A1AD [Unknown function at EtwSetMark]
77356500 [Unknown function at _wcsnicmp]
41A4B0 [FastMM4.pas][FastMM4][FastMM4.DebugFreeMem][8893]
The current thread ID is 0x960, and the stack trace (return addresses) leading to this error is:
40697E
40E07E
6E55E9 [Data.DB][Data][Data.DB.TStringField.GetValue]
6E53D7 [Data.DB][Data][Data.DB.TStringField.GetAsVariant]
AB6BAD [cxDB.pas][cxDB][cxDB.GetFieldValue][395]
AC1118 [cxDBData.pas][cxDBData][cxDBData.TcxValueDefDBReader.GetValue][3398]
90F02E [cxDataStorage.pas][cxDataStorage][cxDataStorage.TcxDataStorage.ReadRecord][2340]
97FBCE [cxCustomData.pas][cxCustomData][cxCustomData.LoadData][8627]
97FD52 [cxCustomData.pas][cxCustomData][cxCustomData.TcxCustomDataController.LoadStorage][8666]
AC4895 [cxDBData.pas][cxDBData][cxDBData.TcxDBDataController.LoadStorage][5164]
98027E [cxCustomData.pas][cxCustomData][cxCustomData.TcxCustomDataController.UpdateStorage][8870]
Current memory dump of 256 bytes starting at pointer address 7D6A63B0:
00 00 00 00 1F 00 00 00 68 00 00 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 87 CD F1 77 80 80 80 80 80 80 80 80 00 00 00 00 F1 63 6A 7D
. . . . . . . . h . . .
Ν ρ w . . . . ρ c j }
---------------------------
OK
---------------------------
Danke!
Jens