2010-04-29 3 views
9

현재 델파이 앱에서 스택 공간이 얼마나 사용되고 있는지 어떻게 알 수 있습니까? 나는 매우 이상한 오류가 스택 문제와 같은 것 같았습니다. 얼마나 많은 스택 공간을 사용 중인지/남은지 알기 위해 내 앱의 로그에 추가하고 싶습니다. 루틴을 여러 번 호출 할 수 있기 때문에 디버거를 사용하는 것은 그리 좋지 않을 것입니다.델파이 앱에서 현재 얼마나 많은 스택 공간이 사용되고 있는지 어떻게 알 수 있습니까?

감사합니다.

답변

11

이 당신에게 당신의 현재 스택 사용을 제공한다 :

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

난 내 머리 위로에게 실행시 최대 스택 크기를 얻을 수있는 간단한 방법을 기억하지 않지만, 기본이를 값을 링커 옵션에 추가하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 이것에 의해 반환되는 가치가 얼마나 작은 지 놀랍다. 스택이 기껏해야 약 1 % 사용되었음을 나타냅니다. 이 숫자는 바이트입니까? –

+0

예, 바이트를 반환합니다. –

2

VMmap (SysInternals에서 제공)은 스택을 포함하여 응용 프로그램에서 사용하는 각 유형의 메모리에 대한 그래픽보기를 제공합니다. Per Larsen의 대답과 같은 정확한 사용법을 제공하지는 않지만 응용 프로그램의 여러 단계에서 메모리 사용을 시각화하는 데 도움이 될 수 있습니다.

+0

흥미로운 앱; 나는 새로운 것을 배울 수 있습니다. 감사! –

관련 문제