Если у вас установлено WinDbg , используйте меню Файл → Открыть исполняемый файл , чтобы открыть приложение непосредственно в отладчике и автоматически прервать его немедленно.
Затем вы можете использовать команды в Debug (т.е. Go ) для его нормального выполнения и отладки. Также загрузите SOS Extensions . Не так хорошо, как Visual Studio, но полезно, если у вас есть только EXE (и, надеюсь, PDB, хотя это необязательно) и нет источника.
Пример : Это мой исходный код, который, как мы предполагаем, недоступен:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
int x = 10 - 10;
int i = 2000/x;
Application.Run(new Form1());
}
Сбой сразу, без возможности вовремя подключить отладчик. Это вывод WinDbg после нажатия «Run»:
Удалена мертвая ссылка ImageShack - я нарисовал круги от руки
После загрузки SOS.dll вы можете использовать! DumpStack, чтобы увидеть, где было сгенерировано исключение:
Удалена мертвая ссылка ImageShack - Круги от руки не извините, извините!
Обратите внимание, что оптимизация JIT или компилятора может привести к встраиванию методов, что может сделать StackTrace не на 100% надежным, но для быстрого обзора это работает.
WinDbg немного загадочен, но как только вы освоите некоторые основы, это будет здорово и, по крайней мере, поможет найти корень проблемы.