Stack requirements can be difficult to accurately define in many of today’s interrupt-driven control systems. Sometimes, worst-case stack needs can be modeled easily, but they often cannot. Many ‘thin’ commercial real-time kernels and most custom operating systems lack the facility to precisely monitor stack depth in ‘real-time’. This paper will present several straightforward and practical approaches to monitoring the maximum stack depth reached during the execution of an embedded application via the use of software and hardware techniques.