2010-04-29 8 views
9

¿cómo puedo ver qué cantidad de espacio de pila se usa actualmente en mi aplicación delphi? Tuve un muy extraño error que suena como un problema de pila. Me gustaría agregarlo al registro de mi aplicación para tener una idea de cuánto espacio de pila está en uso/quedando. usar el depurador probablemente no sea tan bueno porque se puede llamar a la rutina muchas veces.¿cómo puedo ver qué cantidad de espacio de pila se usa actualmente en mi aplicación delphi?

gracias!

Respuesta

11

Esto debe darle el uso actual de la pila:

function CurrentStackUsage: DWord; 
asm 
    mov eax, fs:[4] 
    sub eax, esp 
end; 

No recuerdo la parte superior de la cabeza de una manera sencilla para obtener el máximo tamaño de la pila en tiempo de ejecución, pero tiene el defecto valor en sus opciones de enlazador.

+0

¡gracias por su respuesta! Me sorprende lo pequeño que es el valor devuelto por esto. indicaría que la pila es, en el mejor de los casos, aproximadamente 1% utilizada. es este numero en bytes? –

+0

Sí, esto devuelve bytes. –

2

VMmap de SysInternals puede darle una vista gráfica de cada tipo de memoria utilizada por su aplicación, incluida la pila. No le da el uso exacto como la función en la respuesta de Per Larsen, pero puede ayudarlo a visualizar el uso de la memoria en las diferentes etapas de su aplicación.

+0

aplicación interesante; puedo aprender algo nuevo de eso. ¡Gracias! –

Cuestiones relacionadas