Как отлаживать сбой приложения без ссылки на исходный код трассировки стека?

http://support.microsoft.com/kb/953102

Во время рождественских праздников мы потратили около 50 часов на то, чтобы выявить эту проблему, из-за которой критически важное для бизнеса производственное приложение произвело сбой.

Проблема заключалась в том, что в исходном коде не было трассировки стека, только собственный код, такой как NativeWindow.Callback, в нижней части трассировки стека.

Есть какие-нибудь инструменты, которые вы бы использовали для отладки такого рода проблем?

Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
2
0
1 342
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы можете терпеть это, добавьте много журналов.

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

У меня есть приложение, с помощью которого я это сделал (я не могу отладить его другим способом в предполагаемой среде), и нашел его эффективным. Также впечатляет, что вы работали с более чем 1 миллионами строчных файлов журналов (чтобы много журналирования, и большой тестовый пример <g>)

Ага, разделяй и властвуй - твой друг.

plinth 08.01.2009 03:46

Другие вопросы по теме