Автоматизировать VisualStudio непосредственное окно - PullRequest
2 голосов
/ 13 мая 2010

Я пытаюсь автоматизировать процесс открытия аварийных дампов для управляемых приложений и получения трассировки стека. Иногда Windgb работает, но заставить загрузить правильную версию sos.dll - кошмар, если машина, обрабатывающая дамп, практически не идентична машине, на которой произошел дамп.

Visual Studio, с другой стороны, выполняет свою работу просто. Я открываю дамп, захожу в ближайшее окно и набираю

.load \\<machine where dump occured>\c\windows\microsoft.net\framework\v2.0.50727\sos.dll

!clrtsack 

И все работает просто отлично.

Могу ли я написать сценарий этого процесса в visual studio? Если нет, есть ли отладчик бэкэнда, используемый Visual Studio, такой же, как windbg?

1 Ответ

1 голос
/ 15 сентября 2010

Вместо того, чтобы передавать полный путь к команде .load, вы могли бы вместо этого использовать команду .loadby, чтобы дать WinDbg подсказку о том, где должна находиться DLL.
Команда получает два аргумента:

  1. Имя DLL, которую вы хотите загрузить (в вашем случае, SOS)
  2. Имя уже загруженной DLL, которое должно содержаться в той же папке, что и первая, запрошенная DLL (в вашем случае, clr для .Net v4.0 или mscorwks для более ранних версий).

Например:

// v4.0
>.loadby sos clr

// earlier versions
>.loadby sos mscorwks
...