2012-01-06 18 views
7

Alguien ha portado la depuración administrador de memoria SafeMM a Delphi XE2? El 2009 SafeMM on CodeCentral no se compilará porque el RTL ahora usa NativeInt en lugar de Integer para las funciones de memoria.SafeMM para Delphi XE2

+0

¿No has visto solo cambiando las declaraciones de '' Integer' a NativeInt' en su caso? – LaKraven

+1

No estoy seguro de que sea así de simple. Pensé que podría preguntar si alguien ya transfirió SafeMM a Win64 antes de intentar hacerlo yo mismo, para no duplicar innecesariamente el esfuerzo de otras personas. –

+2

¿La mayoría de la gente no utiliza [FastMM] (http://sourceforge.net/projects/fastmm/) en modo de depuración completa en estos días? Parece capturar casi todas las travesuras que alguna vez le lancé y es completamente XE2 y de 64 bits. –

Respuesta

3

He subido mi Delphi XE2 port of SafeMM a CodeCentral. He verificado que asigna correctamente bloques de más de 4 GB y que puede asignar más de 4 GB de bloques más pequeños cuando se utiliza en una aplicación Win64 y que todavía funciona correctamente en las aplicaciones Win32.

He actualizado mi presentación de CodeCentral el 7 de julio de 2012 para corregir un error que hace que SafeMM se cuelgue cuando dos subprocesos intentan liberar un bloque grande (> 4 KB) al mismo tiempo. Este error fue introducido en la versión 0.3 de SafeMM por su desarrollador original. Si está utilizando esta versión de SafeMM con una versión anterior de Delphi, deberá ajustar el código en FreeLargeBlock en una sección crítica como lo hice en mi versión.

Cuestiones relacionadas