Página 1 de 1

Como descifrar error de memoria

Publicado: Jue Mar 21, 2013 10:24 pm
por gerencia
He habilitado la opción debugy la opción depurar perdida de memoria, y
me arroja esto.
Application Memory Allocation Report -
C:Proyectos_newStiHelpDesk3ServiceDesk.exe
Terminated at: 2013.03.21 16:15:22
Total memory allocated: 27354271 bytes (241489 block(s))
Warning, memory allocated but not released: 176 bytes (4 block(s))
Block 1 057cec98 (size 40) WMNOTIFY(0),
" C8F08A0680D47206A85A620001000100000000000000000080EA13040000 00000000000000000000 "
Block 2 068af0c8 (size 40) WMNOTIFY(0),
" 00C2720698EC7C05A85A6200010001000000000000000000806B73060000 38000000000000000000 "
Block 3 0672c200 (size 40) WMNOTIFY(0),
" 80D47206C8F08A06A85A6200010001000000000000000000000000000000 00000000000000000000 "
Block 4 0672d480 (size 40) WMNOTIFY(0),
" 98EC7C0500C27206A85A620001000100000000000000000018EFB6050000 00000000000000000000 "
------------------------------------------------------------ ------------
La pregunta del millón ahora que hago con esto, en donde radica el
problema y como lo arreglo?
--
José David Angulo
*José**David Angulo Urzola.*
*Auditoria y Sistemas Ltda.*
jose.angulo@auditoriaysistemas.com <mailto:Gerencia@microexpressltda.com>
*Tel. (57) 5-6643022 -- 6644555*
*Cartagena -- Colombia*
--

Como descifrar error de memoria

Publicado: Jue Mar 21, 2013 10:42 pm
por jfgimenez
José David,
> He habilitado la opción debugy la opción depurar perdida de memoria, y
> me arroja esto.
>
> Application Memory Allocation Report -
> C:Proyectos_newStiHelpDesk3ServiceDesk.exe
> Terminated at: 2013.03.21 16:15:22
> Total memory allocated: 27354271 bytes (241489 block(s))
> Warning, memory allocated but not released: 176 bytes (4 block(s))
> Block 1 057cec98 (size 40) WMNOTIFY(0),
> " C8F08A0680D47206A85A620001000100000000000000000080EA13040000 00000000000000000000 "
> Block 2 068af0c8 (size 40) WMNOTIFY(0),
> " 00C2720698EC7C05A85A6200010001000000000000000000806B73060000 38000000000000000000 "
> Block 3 0672c200 (size 40) WMNOTIFY(0),
> " 80D47206C8F08A06A85A6200010001000000000000000000000000000000 00000000000000000000 "
> Block 4 0672d480 (size 40) WMNOTIFY(0),
> " 98EC7C0500C27206A85A620001000100000000000000000018EFB6050000 00000000000000000000 "
> ------------------------------------------------------------ ------------
>
> La pregunta del millón ahora que hago con esto, en donde radica el
> problema y como lo arreglo?
Por el tamaño de los bloques parece que se trata de "items" de la VM,
que de alguna forma se están creando y no se están liberando. Y parece
que todos ellos (seguramente 1 cada vez) se crean dentro del método
WMNotify() de algún control. En cualquier caso, estoy seguro al 99.99%
de que el problema está en alguna rutina escrita en C. Si tienes algún
control con ese método escrito en C, reví­salo.
También podrí­a tratarse de algún control de Xailer que se nos haya
escapado, o que lo estés usando de alguna forma que nosotros no hayamos
comprobado. En ese caso, te agradecerí­a que intentaras aislar el
problema en la medida que puedas, y nos hagas saber de qué control se
trata o como reproducirlo. Si pudieses preparar un pequeño ejemplo serí­a
perfecto.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Como descifrar error de memoria

Publicado: Vie Mar 22, 2013 9:06 pm
por gerencia
José,
Efectivamente uso una pequeña modificacion en la clase Tedit, que
alguien coloco el foro para el efecto de foco cada Tedit
Este es el código que uso,
//---------------------------------------------------------- --------------------
CLASS TEdit FROM XEdit
PROPERTY nClrPaneFocus INIT RGB(225, 237, 255 )
METHOD WMNCPAINT()
ENDCLASS
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "colors.ch"
HB_FUNC_STATIC( TEDIT_WMNCPAINT )
{
PHB_ITEM Self = hb_stackSelfItem();
HWND hWnd = GetHandleOf( Self );
if( XA_ObjGetL( Self, "lFocused" ) )
{
HDC hdc = GetWindowDC( hWnd );
RECT rect;
HBRUSH hbr = CreateSolidBrush( clSlateGray);
GetWindowRect( hWnd, &rect );
rect.right -= rect.left;
rect.bottom -= rect.top;
rect.left = 0;
rect.top = 0;
FrameRect( hdc, &rect, hbr );
InflateRect( &rect, -1, -1 );
FrameRect( hdc, &rect, hbr );
DeleteObject( hbr );
}
else
PrevWindowProc( hWnd, WM_NCPAINT, hb_parnl( 1 ), 0 );
hb_retnl( 0 );
}
#pragma ENDDUMP
José David Angulo
*José**David Angulo Urzola.*
*Auditoria y Sistemas Ltda.*
jose.angulo@auditoriaysistemas.com <mailto:Gerencia@microexpressltda.com>
*Tel. (57) 5-6643022 -- 6644555*
*Cartagena -- Colombia*
El 2013-03-21 04:42 p.m., Jose F. Gimenez escribió:
> José David,
>
>> He habilitado la opción debugy la opción depurar perdida de memoria,
>> y me arroja esto.
>>
>> Application Memory Allocation Report -
>> C:Proyectos_newStiHelpDesk3ServiceDesk.exe
>> Terminated at: 2013.03.21 16:15:22
>> Total memory allocated: 27354271 bytes (241489 block(s))
>> Warning, memory allocated but not released: 176 bytes (4 block(s))
>> Block 1 057cec98 (size 40) WMNOTIFY(0),
>> " C8F08A0680D47206A85A620001000100000000000000000080EA13040000 00000000000000000000 "
>> Block 2 068af0c8 (size 40) WMNOTIFY(0),
>> " 00C2720698EC7C05A85A6200010001000000000000000000806B73060000 38000000000000000000 "
>> Block 3 0672c200 (size 40) WMNOTIFY(0),
>> " 80D47206C8F08A06A85A6200010001000000000000000000000000000000 00000000000000000000 "
>> Block 4 0672d480 (size 40) WMNOTIFY(0),
>> " 98EC7C0500C27206A85A620001000100000000000000000018EFB6050000 00000000000000000000 "
>> ------------------------------------------------------------ ------------
>>
>> La pregunta del millón ahora que hago con esto, en donde radica el
>> problema y como lo arreglo?
>
> Por el tamaño de los bloques parece que se trata de "items" de la VM,
> que de alguna forma se están creando y no se están liberando. Y parece
> que todos ellos (seguramente 1 cada vez) se crean dentro del método
> WMNotify() de algún control. En cualquier caso, estoy seguro al 99.99%
> de que el problema está en alguna rutina escrita en C. Si tienes algún
> control con ese método escrito en C, reví­salo.
>
> También podrí­a tratarse de algún control de Xailer que se nos haya
> escapado, o que lo estés usando de alguna forma que nosotros no
> hayamos comprobado. En ese caso, te agradecerí­a que intentaras aislar
> el problema en la medida que puedas, y nos hagas saber de qué control
> se trata o como reproducirlo. Si pudieses preparar un pequeño ejemplo
> serí­a perfecto.
>
>
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
--

Como descifrar error de memoria

Publicado: Sab Mar 23, 2013 12:21 pm
por jfgimenez
José David.
> Efectivamente uso una pequeña modificacion en la clase Tedit, que
> alguien coloco el foro para el efecto de foco cada Tedit
>
>
> Este es el código que uso,
Esa rutina está aparentemente bien, y no creo que dé ningún problema. Es
más, los mensajes apuntan a WMNotiFy, y ese método no está en esa
rutina. El problema está en algún otro sitio.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info