http://support.microsoft.com/kb/953102
Во время рождественских праздников мы потратили около 50 часов на то, чтобы выявить эту проблему, из-за которой критически важное для бизнеса производственное приложение произвело сбой.
Проблема заключалась в том, что в исходном коде не было трассировки стека, только собственный код, такой как NativeWindow.Callback, в нижней части трассировки стека.
Есть какие-нибудь инструменты, которые вы бы использовали для отладки такого рода проблем?

Если вы можете терпеть это, добавьте много журналов.
Угадайте, где это происходит, и поместите этот код в скобки в журналах entered Foo и exited Foo. Затем, если вы видите один, но не другой, при сбое, вы знаете, что он где-то там, поэтому начните двоичный (или n-арный) поиск, погружаясь в функции по мере необходимости. В какой-то степени вам нужно будет свернуть ковер позади себя, чтобы уменьшить размер бревна, но до тех пор, пока падение может происходить достаточно часто, вы должны иметь возможность сосредоточиться на нем таким образом.
У меня есть приложение, с помощью которого я это сделал (я не могу отладить его другим способом в предполагаемой среде), и нашел его эффективным. Также впечатляет, что вы работали с более чем 1 миллионами строчных файлов журналов (чтобы много журналирования, и большой тестовый пример <g>)
Ага, разделяй и властвуй - твой друг.