Jak debugować błędy uszkodzenia sterty?
Debuguję (natywną) wielowątkową aplikację C ++ w Visual Studio 2008. Na pozornie przypadkowych okazjach pojawia się błąd „Windows wywołał punkt przerwania ...” z informacją, że może to być spowodowane uszkodzeniem sterta. Błędy te nie zawsze powodują awarię aplikacji od razu, chociaż prawdopodobnie ulegną awarii wkrótce.
Duży problem z tymi błędami polega na tym, że pojawiają się dopiero po tym, jak nastąpiło uszkodzenie, co bardzo utrudnia ich śledzenie i debugowanie, zwłaszcza w przypadku aplikacji wielowątkowych.
Jakie rzeczy mogą powodować te błędy?
Jak je zdebugować?
Porady, narzędzia, metody, oświecenia ... są mile widziane.