Как отлаживать приложения .net без Visual Studio - PullRequest
18 голосов
/ 04 мая 2009

Пожалуйста, дайте мне знать, если об этом уже спрашивали, я не смог найти никаких вопросов на эту тему: -

Мне нужно определить внутреннее исключение, которое выдается на компьютере с установленной платформой .net, но не с Visual Studio (и при этом невозможно установить Visual Studio на компьютер). Как я могу изучить это внутреннее исключение?

Обратите внимание на несколько моментов:

  • Запуск Visual Studio с другого компьютера бесполезен, так как проблема на самом деле лежит на коробке; это heisenbug первого порядка.
  • Я знаю, что WinDbg - это вариант, однако мне нужно, чтобы это было сделано быстро, и, к сожалению, я думаю, что время, необходимое для изучения WinDbg в достаточной степени, перевесит время, которое у меня есть - однако, если у кого-то есть пошаговые инструкции по этому вопросу Мне было бы интересно.
  • У меня есть полные права администратора и я могу установить все, что не слишком велико (проблема с установкой VS в том, что на жестком диске недостаточно места).

Спасибо!

Ответы [ 3 ]

12 голосов
/ 04 мая 2009

Был ли у вас взгляд на MDBG ? Это может занять некоторое время, чтобы обойти, но довольно прямо вперед.

Также DbgClr может быть вариантом, я думаю, что он все еще должен быть где-то в SDK.

8 голосов
/ 04 мая 2009

Это довольно просто сделать с WinDbg, если у вас есть аварийный дамп. Загрузите дамп в WinDbg, загрузите sos и выполните команду printexception.

>.load sos
>!printexception

Это скажет вам исключение, а также укажет на внутреннее исключение. Вывод будет примерно таким:

0:000> !printexception
Exception object: 0135b340
Exception type: System.ApplicationException
Message: GetAverage failed
InnerException: System.IndexOutOfRangeException, use !PrintException 01358394 to see more
<stack trace follows>

Если у вас еще нет дампа памяти, вы можете создать его с помощью adplus (поставляется с WinDbg).

>adplus -crash -o<dump location> -quiet -pn<name of process>

Если вы предпочитаете использовать PID, используйте параметр -p.

1 голос
/ 04 мая 2009

вы можете использовать удаленную отладку: http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx

...