Как я могу увидеть, сколько стекового пространства в настоящее время используется в моем приложении Delphi? - PullRequest
10 голосов
/ 30 апреля 2010

как я могу увидеть, сколько стекового пространства в настоящее время используется в моем приложении delphi? у меня была очень странная ошибка, которая звучит как проблема со стеком. Я хотел бы добавить его в журнал моего приложения, чтобы получить представление о том, сколько стекового пространства используется / осталось. использование отладчика, вероятно, не так здорово, потому что процедура может вызываться много раз.

спасибо!

Ответы [ 2 ]

12 голосов
/ 30 апреля 2010

Это должно дать вам текущее использование стека:

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

Я не припомню простого способа получить максимальный размер стека во время выполнения, но у вас есть значение по умолчанию в параметрах компоновщика.

2 голосов
/ 30 апреля 2010

VMmap от SysInternals может предоставить вам графическое представление каждого типа памяти, используемой вашим приложением, включая стек. Он не дает вам точного использования, подобного функции в ответе Пер Ларсена, но может помочь вам визуализировать использование памяти на разных этапах вашего приложения.

...