Как увидеть подробности управляемого исключения в WinDBG?

StackOverflow https://stackoverflow.com/questions/836509

Вопрос

VS2005 C # Компилятор дает сбой во время ночного процесса сборки нашей команды. Я присоединяюсь к нему с помощью WinDBG, загружаю расширения SOS, печатаю стек вызовов, но не вижу информации об исключении.

Я пробовал! PrintException, как показано ниже:

    0:000> !PrintException
    There is no current managed exception on this thread

Вот вершина стека вызовов:

    0:000> !CLRStack
    OS Thread Id: 0x9fc (0)
    ESP       EIP     
    0012ee08 77e4bef7 [ComPlusMethodFrameGeneric: 0012ee08] Microsoft.Build.Tasks.Hosting.ICscHostObject.Compile()
    0012ee18 6be671ab Microsoft.Build.Tasks.Csc.CallHostObjectToExecute()
    0012ee48 6c0aed17 Microsoft.Build.Utilities.ToolTask.Execute()
Это было полезно?

Решение

Причина, по которой вы не видите исключения, заключается в том, что компилятор C # не написан в управляемом коде. Это проект C ++ и, следовательно, не будет генерировать исключение CLR. Вместо этого вам нужно искать собственную ошибку.

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

Я понял! Все, что нужно было сделать, это сохранить файл дампа (* .dmp) из WinDBG и заново открыть его в Visual Studio.

Для полного решения посмотрите на мой предыдущий вопрос

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top