How long is a piece of string?
The amount of stack depends on the depth of subroutine calls and the amount of stack space each uses (for local variables etc).
It is possible to do static analysis of the object code (or compiler 'asm' listing), but that is difficult if there are potentially recursive functions or indirect calls.
Typically any on-stack buffers dominate.
Unfortunately the 'try it and see' approach doesn't necessarily work either - as the limit could well be within the error logging for some uncommon failure and/or require an interrupt to occurr when the stack use is already high (one reason for switching stacks on interrupt).