У нас есть большое приложение ASP.NET, которое иногда дает сбой из-за StackOverflowException
s. Поскольку эти не обрабатываются очень элегантно в .NET, мы переходим к посмертной отладке без каких-либо обычных журналов исключений и трассировки стека. Как только мы обнаруживаем, где возникает проблема, ее, как правило, довольно легко исправить; жесткая часть указывает, где в кодовой базе происходит ошибка.
Файл дампа процесса, который мы получаем после сбоя, кажется, очень поможет в этих усилиях, но до сих пор мы не могли понять, как его лучше всего использовать. Вы можете (очень, очень, медленно) «отлаживать» процесс с помощью Visual Studio, но это в основном занимает бесконечную загрузку символов MSFT, а затем не будет загружать символы для наших библиотек DLL приложений (так что вы не можете увидеть интересные части стек вызовов).
Похоже, должен быть простой способ уйти от:
- Файл аварийного дампа
- Набор DLL / PDB управляемых приложений
в полный стек управляемых вызовов; может ли кто-нибудь описать (или указать на учебник) для этого (используя VS, WinDbg или любой другой инструмент)?
won't load the symbols for our application DLLs
‹- почему бы и нет? Откройте окноDebug -> Windows -> Modules
в VS и посмотрите, почему ваши pdbs не обнаруживаются. (Щелкните правой кнопкой мыши свою dll и выберите «Информация о загрузке символов»). Я считаю, что вы делаете это хорошо (символы MSFT будут кэшироваться и загружаться быстрее после первый раз) - person wal   schedule 07.05.2014