2009-11-12 3 views
0

У меня есть приложение C#, которое сбой по неизвестной причине.Как я могу взять файл дампа для приложения Winforms

Для понимания проблемы, я хочу взять файл дампа для него.

Как я могу это сделать?

большое спасибо,

Oz.

+0

Почему просто не отлаживать приложение, чтобы вы могли легко найти путь выполнения и переменные – RvdK

ответ

0

Вы должны поймать исключение и вывести его в файл журнала в своей основной папке.

т.е.

static int main() 
{ 
    try 
    { 
    } 
    catch (Exception ex) 
    { 
    WriteToLogFile(ex); 
    } 
} 
+1

Он попросил файл дампа. Если вы хотите получать уведомления об исключениях, AppDomain.UnhandledException - лучший выбор. – Patrik

1

Вы говорите о принятии дампа, когда ваш сбоя приложения, так что вы можете отлаживать его с WinDbg или CDB?

Если да, то существуют различные подходы:

DrWatson
-Run drwtsn32 -i в интерпретаторе команд, это будет активировать доктор Ватсон и пусть это слушать в фоновом режиме для всех аварий.

Windbg
-Run windbg -I из commandpromt начиная с папке установки Windbg.
-Когда произойдет сбой, windbg немедленно загрузит аварийную свалку.

Прежде всего, необходимо загрузить и установить Debugging tools for Windows.

1

Если вы используете Windows Vista/7 или Server 2008, тогда вы можете открыть диспетчер задач и вручную создать файл дампа, как описано here. Я бы порекомендовал использовать Windbg для того, чтобы поймать крах, как предложил Мез, поскольку с этого момента вы можете выполнить немедленный анализ дампов сбоев в процессе.